1:游標,這不多說。
2:臨時表:
思路如下:
@@rowcount來控制迴圈結束標記。
臨時表裡生成乙個自動增長id
達到總行數時,結束迴圈。
大概寫一下:
假設有個實體表table_useraccount
兩列:userid uniqueidentifier
username nvarchar(100)
現要遍歷該學生表
/*行號,用於迴圈*/
declare @rownum int
/*總行數*/
declare @totalcount int
/*建立臨時表#tmp_user_0323用於迴圈*/
select identity(1,1) as id,userid,username into #tmp_user_0323 from table_useraccount
/*設定迴圈總數*/
set @totalcount = @@rowcount
/*設定迴圈起始值*/
set @rownum = 1
while @rownum <=@totalcount
begin
/*具體------------------操作*/
select userid,username from #tmp_user_0323
where id = @rownum
/*迴圈變數增 1*/
set @rownum = @rownum + 1
end大概這個樣子。當然,也看到有人用set @rowcount 0/1來處理或者用min/max來進行迴圈結束控制。
迴圈麼,只要找到結束條件就ok了。
不知道還有其他方法沒呢?
專案隨筆 SQL迴圈結果集
1 游標,這不多說。2 臨時表 思路如下 rowcount來控制迴圈結束標記。臨時表裡生成乙個自動增長id 達到總行數時,結束迴圈。大概寫一下 假設有個實體表table useraccount 兩列 userid uniqueidentifier username nvarchar 100 現要遍歷...
SQL 操作結果集 並集 差集 交集 結果集排序
為了配合測試,特地建了兩個表,並且新增了一些測試資料,其中重覆記錄為東吳的人物。表 person 1魏國人物 表 person 2蜀國人物 a union形成並集 union可以對兩個或多個結果集進行連線,形成 並集 子結果集所有的記錄組合在一起形成新的結果集。1 限定條件 要是用union來連線結...
SQL 操作結果集 並集 差集 交集 結果集排序
為了配合測試,特地建了兩個表,並且新增了一些測試資料,其中重覆記錄為東吳的人物。表 person 1魏國人物 表 person 2蜀國人物 a union形成並集 union可以對兩個或多個結果集進行連線,形成 並集 子結果集所有的記錄組合在一起形成新的結果集。1 限定條件 要是用union來連線結...