sql 利用遊標遍歷一個查詢結果
阿新 • • 發佈:2019-01-30
這裡有一個單位表
unitT
Id | name |
1 | 單位1 |
2 | 單位2 |
有一個評分專案表
itemT
Id | name |
1 | 專案1 |
2 | 專案2 |
有一個單位得分表
scoreT
Id | unitId | itemid | score |
1 | 1 | 1 | 20 |
2 | 2 | 1 | 50 |
3 | 1 | 2 | 30 |
4 | 2 | 2 | 60 |
現在需要遍歷所有單位將他們的分數查詢出來,就用迴圈遍歷的方法
當前我使用的是遊標方法,還有其他遍歷方式。
--定義變數,用於儲存當前被遍歷到的值
declare @a nvarchar(40);
--遞迴,首先需要遞迴的空間,定義一個遊標指向這個空間
declare mycursor cursor for select id from unitT
--開啟遊標
open mycursor
--開始遍歷,將下一行的資料存入兩個變數中
fetch next from mycursor into @a
while (@@fetch_status=0)--如果下一行還有資料
begin--開始遍歷
select * from scoreT where [email protected]a
fetch next from mycursor into @--再下一行
end--遍歷結構結束
close mycursor--關閉遊標
deallocate mycursor--刪除遊標
--遍歷完成