工作中用到的记录一下,游标的详细定义及说明请百度
--游标格式化数据 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 --释放游标