sql server 游標和with as使用

2022-06-23 10:27:12 字數 1232 閱讀 7817

declare

@userid

int , @gameid

nvarchar(50) --

宣告變數,需要讀取的資料

declare cur cursor

--去掉static關鍵字即可

forwith

emp as(

select acc.*

from

gxspreaddb.dbo.gxs_account acc

left

join

ryaccountsdb.dbo.accountsinfo account

on acc.userid=

account.userid

where parentuserid=

7213

and account.agentid=

0union

allselect d.*

from

emp ,gxspreaddb.dbo.gxs_account d

where d.parentuserid =

emp.userid )

select userid,gameid from

empopen cur --

開啟游標

fetch

next

from cur into

@userid, @gameid

--取資料

while ( @@fetch_status

=0 ) --

判斷是否還有資料

begin

select

'資料: '+

rtrim(@userid)+';

'+@gameid

--update #t set name='測試' where id=4 --測試靜態動態用

fetch

next

from cur into

@userid, @gameid

--這裡一定要寫取下一條資料

endclose cur --

關閉游標

deallocate cur

查詢結果:

sqlserver游標使用和迴圈

游標說簡單點都是設定乙個資料表的行指標,然後使用迴圈等運算元據 游標主要是用來完成複雜的業務邏輯 比如sqlserver中樹型查詢,比如如下業務點 資料表編號 名稱 父編號 1 中國 0 2 上海市 1 3 虹口區 2 4 楊浦區 2 顯示結果 中國 上海市 虹口區 中國 上海市 楊浦區 類似這樣的...

mysql游標很慢 Sqlserver 游標 慢

net專案中有個模組做統計功能,原先方法速度很慢,所以需要改進,統計結果如下圖 下圖接上圖後面 原先的處理方式是,這些資料分別涉及到四五張表,前台從資料庫中查詢出需要的資料集,然後分別遍歷這些資料集拼接html字串顯示在介面上。優化思考 net專案中有個模組做統計功能,原先方法速度很慢,所以需要改進...

SQL Server 游標使用

游標概念 資料庫操作中我們常常會遇到這樣情況,即從某一結果集中逐一地讀取一條記錄。那麼如何解決這種問題呢?游標為我們提供了一種極為優秀的解決方案。游標 cursor 是系統為使用者開設的乙個資料緩衝區,存放sql語句的執行結果。每個游標區都有乙個名字。使用者可以用sql語句逐一從游標中獲取記錄,並賦...