工作中用到的記錄一下,游標的詳細定義及說明請百度
--游標格式化數據
DECLARE cursor_jxsmb CURSOR FOR --定義一個游標
SELECT F0 FROM dbo.JXSMB2019; --定於游標的數據源
OPEN cursor_jxsmb --打開游標
DECLARE @LAST NVARCHAR(4000),@THIS NVARCHAR(4000) --定義兩個變量,用來保存上一行和當前行的數據
FETCH NEXT FROM cursor_jxsmb INTO @THIS --設置@this 為當前行的數據
WHILE @@FETCH_STATUS=0 --判斷游標是否為讀取失敗,讀取失敗則為-1 代表最后一行
BEGIN
IF LEN(@THIS)<>0 --判斷當前讀取行字段是否為空
BEGIN
SET @LAST=@THIS --如果不為空則不更新,並且設置@last為當前行的數據
--PRINT @LAST
END
ELSE
BEGIN --如果為空則更新當前行的數據為上一行
UPDATE JXSMB2019 SET F0=@LAST WHERE CURRENT OF cursor_jxsmb --更新數據,where 只更新當前游標所在行
--PRINT @LAST
END
FETCH NEXT FROM cursor_jxsmb INTO @THIS --繼續讀取下一行數據
END
CLOSE cursor_jxsmb --關閉游標
DEALLOCATE cursor_jxsmb --釋放游標