sql 语句之,游标的应用,table变量

declare @tempstr nvarchar(400);   
    declare @dbTable1 table(id int,[payorderid] nvarchar(50),addtime datetime,userid nvarchar(50),my nvarchar(10),ku nvarchar(10),addpay int, shoplist139ex nvarchar(500))  //定义 table变量
    declare allyb cursor             //定义游标
      for 
    select  pay.id,pay.shoplist139ex,pay.addpay,pay.[ku],pay.my,pay.shoplist139,pay.payapli,pay.addtime,pay.userid,cast(pay.[allorderid] as nvarchar(400)) as [allorderid],pay.[payorderid],cast(paylist.shopalloid as nvarchar(400)) as shopalloid from [139group].[dbo].pay LEFT JOIN [139group].[dbo].paylist ON pay.[shoplist139ex]=paylist.pod where  pay.addtime between convert(datetime,'2014-9-21') and convert(datetime,'2014-9-22') order by pay.addtime desc,pay.id desc
    for read only
    //定义对应
     declare @id int,@shoplist139ex nvarchar(50),@addpay int,@ku nvarchar(10),@my nvarchar(10),@shoplist139 nvarchar(500); 
     declare @payapli decimal(18,2),@addtime datetime,@userid nvarchar(50),@allorderid nvarchar(400),@payorderid  nvarchar(50),@shopalloid nvarchar(400)
    open allyb    //打开游标
    fetch allyb into @id,@shoplist139ex,@addpay,@ku,@my,@shoplist139,@payapli,@addtime,@userid,@allorderid,@payorderid,@shopalloid

取得一次数据
    while @@FETCH_STATUS!=-1 begin
    set @tempstr=''
     select @tempstr+=','+orderids139 from dbo.lc_order where charindex( ','+CAST(id as nvarchar(50))+',',','+@shopalloid  )>0
         insert into @dbTable1 (id,payorderid,addtime,userid,my,ku,addpay,shoplist139ex)values(@id,@payorderid,@addtime,@userid,@my,@ku,@addpay,@tempstr)

//子查询
     fetch allyb into @id,@shoplist139ex,@addpay,@ku,@my,@shoplist139,@payapli,@addtime,@userid,@allorderid,@payorderid,@shopalloid
//再次    

end
    close allyb
    deallocate allyb
    select * from @dbTable1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值