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

 

 

posted @ 2012-07-25 11:08  Gandell  阅读(107)  评论(1)    收藏  举报