SQL Server 游标的使用

初衷:有这样一批数据 但是想得到用户名一样 日期最大的那条数据 顺便学习一下游标 就用游标来实现
SQL 脚本:
--定义4个变量
declare @un nvarchar(50)
declare @rd datetime
declare @un_tmp nvarchar(50)
declare @rd_tmp datetime
--定义游标
Declare mycusror CurSor Scroll
for select UserName,ReceiveDate from web_Order group by UserName,ReceiveDate
--打开游标
open mycusror
fetch next from mycusror
into @un,@rd
--中间变量赋值
set @un_tmp=@un
set @rd_tmp=@rd
While(@@Fetch_Status = 0)
Begin
Begin
--判断用户名是否发生变化
if @un=@un_tmp
begin
--取得日期最大的那个值
if @rd>@rd_tmp
begin
set @rd_tmp=@rd
end
end
--如果用户名变化了
else
begin
--输出取得的最大的日期的信息
PRINT @un_tmp +':'+CONVERT(nvarchar(50),@rd_tmp)
--中间变量赋值 下次直接使用
set @un_tmp=@un
set @rd_tmp=@rd
end
End
Fetch next From mycusror
Into @un,@rd
End
close mycusror
deallocate mycusror
浙公网安备 33010602011771号