使用select 变量递归能代替使用游标

1、使用select变量递归

declare @eventdates varchar(1024)
set @eventdates=''
select @eventdates=@eventdates+convert(varchar(15),a.d,107)+';'
 from (select top 2 date as d from dbo.area ) as a
 select  left (@eventdates,len(@eventdates)-1)

2、使用游标

declare
 @eventdates varchar(1024),
@eventdate datetime,
@semi bit

set @semi =0
set @eventdates=''

declare cevent cursor fast_forward

 for select top 2 date from dbo.area
open cevent
fetch cevent into @eventdate     --这里可以有多个变量
 while @@Fetch_Status=0
    begin
           if @semi=1
   set @eventdates =@eventdates+';' +convert(varchar(15),@eventdate,107)
  else
   begin
    set   @eventdates =convert(varchar(15),@eventdate,107)
    set @semi =1
       end
     fetch cevent into @eventdate
    end 
close cevent
 deallocate cevent

select @eventdates 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值