游标的使用

要将查询出来的结果集转换成按cc字段依次递增的格式并打印,如下图

思路:使用游标对作图的结果集进行遍历,通过cc字段的数量来决定当前行的循环次数,每次递增加1,如当前行cc是7,则打印0001~0007的数据

在循环中拼接字段 和加空格等方式达到预期的格式。

附带sql语句

drop table #t
select code ,sum(isnull([count],0)) cc into #t from [dbo].[datareport] group by code

DECLARE @code varchar(20),@cc int,@ii int
DECLARE cursor_name CURSOR FOR --定义游标
SELECT code,cc FROM #t where code is not null

OPEN cursor_name --打开游标
FETCH NEXT FROM cursor_name INTO @code,@cc --抓取下一行游标数据
WHILE @@FETCH_STATUS = 0
BEGIN
set @ii=0
while(@ii<@cc)
begin
set @ii=@ii+1
PRINT left(@code,2)+' '+right(@code,3)+' '+right('0000'+cast(@ii as varchar(4)),4)
end
FETCH NEXT FROM cursor_name INTO @code,@cc --抓取下一行游标数据
END
CLOSE cursor_name --关闭游标
DEALLOCATE cursor_name --释放游标

原文地址:https://www.cnblogs.com/clsl/p/12099240.html