SQL 遊標cursor的運用

景上發表於2016-05-27

遊標的運用
1、使用遊標變數:

USE test2
GO
DECLARE @VarCursor cursor;   ------宣告一個遊標變數;
DECLARE cursor_fruit CURSOR FOR ---宣告遊標;
SELECT f_name,f_price FROM fruits;--給遊標賦值;
OPEN cursor_fruit;  ----------------開啟遊標;
SET @VarCursor=cursor_fruit; -------給遊標變數賦值;
FETCH NEXT FROM @VarCursor; --------從遊標變數中讀取值;
WHILE @@FETCH_STATUS = 0 ---------判斷FETCH語句是否執行成功;
BEGIN
  FETCH NEXT FROM @VarCursor; ------從遊標變數中讀取資料;
END
CLOSE @VarCursor; ------------------關閉遊標;
DEALLOCATE @VarCursor;  ------------釋放遊標;

這裡寫圖片描述

2、使用遊標為變數賦值:

DECLARE @fruitsName VARCHAR(23), @FruitsPrice DECIMAL(6,2); ---宣告兩個變數;
DECLARE cursor_fruits CURSOR FOR
SELECT f_name,f_price FROM fruits ORDER BY f_price DESC;   ----將結果集降序排序;
OPEN cursor_fruits;
FETCH NEXT FROM cursor_fruits INTO @fruitsName,@FruitsPrice;  ---給變數賦值;
PRINT '水果的種類和價格:';
PRINT '名稱'+'     價格 ';
WHILE @@FETCH_STATUS=0
BEGIN
   PRINT @fruitsName + '  '+STR(@FruitsPrice,6,2); ---價格保留6位數,最多保留兩位小數;
   FETCH NEXT FROM cursor_fruits INTO @fruitsName,@FruitsPrice;
END
CLOSE cursor_fruits;
DEALLOCATE cursor_fruits;

這裡寫圖片描述

相關文章