SQL如何遍历数据行

2022-12-08 09:11:29

本篇内容介绍了“SQL如何遍历数据行”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

代码如下:

--非游游标方式遍历记录时,记录需要有ID列
declare @i int   --循环开始索引
declare @max int --循环结束索引
set @i=1 --从第1条记录开始
--总记录数量
select @max=COUNT(name) from sys.databases where name like 'WHQJ%'  
--要遍历的记录插入到临时表
select  database_id as id,name into #tmp from sys.databases where name like 'WHQJ%' 
declare @str nvarchar(200)
begin
   while @i<@max
         begin
          set @str =  'select top 1 name from #tmp where id not in(select top '+STR(@i)+' id from #tmp)' 
         print @str
          print @i;
            exec(@str)    --执行查询
         set @i=@i+1; --索引自增1
         continue;
       end
end
drop table #tmp

GO

--通过游标方式遍历没有ID列的数据行
declare @db_name nvarchar(50)
declare tmpCur cursor for select name from sys.databases where name like 'WHQJ%' --声明游戏语句
open tmpCur --打开游标
fetch next from tmpCur into @db_name --取1条记录
--遍历
while @@FETCH_STATUS=0
   begin
      print @db_name --打印取出的值
      fetch next from tmpCur into @db_name --取下1条记录
   end
close tmpCur --关闭游标
deallocate tmpCur --释放游标
GO