数据库游标使用,得到多个结果集

SELECT
TOP ( 3 ) A.Attentionnickname,
B.HeadPhoto,
B.BeattentionCount,
( SELECT COUNT( A.ID ) FROM A WHERE A.nickname = '小明' ) AS COUNT
FROM
A,
B
WHERE
A.nickname = '小明'
AND A.Attentionnickname = B.nickname
AND A.ID NOT IN ( SELECT TOP ( 0 * 3 ) A.ID FROM A WHERE A.nickname = '小明' );


begin
declare @a int,@error int
declare @temp varchar(50)
set @a=1
set @error=0
--申明游标为Uid
declare order_cursor cursor
for (SELECT TOP(3) [Attentionnickname] FROM [A] WHERE nickname='小明' AND ID NOT IN (SELECT TOP(0*3) ID FROM [A] WHERE nickname='小明'))
--打开游标--
open order_cursor
--开始循环游标变量--
fetch next from order_cursor into @temp
while @@FETCH_STATUS = 0 --返回被 FETCH语句执行的最后游标的状态--
begin

SELECT TOP(3) *  FROM C WHERE [UploaderID]=@temp ORDER BY UpdateTime DESC
set @a=@a+1
set @error= @error + @@ERROR --记录每次运行sql后是否正确,0正确
fetch next from order_cursor into @temp --转到下一个游标,没有会死循环
end
close order_cursor --关闭游标
deallocate order_cursor --释放游标
end
go

posted @ 2019-09-03 11:26  2538  阅读(435)  评论(0)    收藏  举报