要将查询出来的结果集转换成按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 --释放游标