首页 新闻 会员 周边

sqlserver2008,利用游标读取数据, 将读取出来的数据拼接成sql语句,结果居然错了?大家帮忙看看

0
悬赏园豆:40 [待解决问题]

代码如下:

 

 

 

 

 

游标读取的数据集是正常的, 如下:

 

但是最后 while @@fetch_status=0
  BEGIN
     
   set @ItemCont=@ItemCont+ '+'',''+' +@Item     
   Fetch Next from Item_cursor into @Item   
  END 

拼接出来的@ItemCount 却是:

最后少了" ,0) + ', '  ", 由于不知道是不是一直都是这个结果, 所以也不好在最后对结果字符串进行处理, 大家知道里面有什么错误么??

allen林的主页 allen林 | 初学一级 | 园豆:2
提问于:2015-10-20 16:05
< >
分享
所有回答(3)
0

declare @ItemCont varchar(max)

vreycd | 园豆:211 (菜鸟二级) | 2015-10-20 16:13
0

目测应该是超出变量的长度了. 用楼上的方法试试.

李丶GuanYao | 园豆:1228 (小虾三级) | 2015-10-20 16:22
1

同意楼上,应是长度不够自动截断了.

另外,可以尝试使用 for xml path的方式,大概会比用游标遍历要方便一点~~

1 SELECT STUFF((SELECT ','+c1 FROM t WHERE ... FOR XML PATH('')),1,1,'') 

STUFF是去掉第一个逗号的.

韩川川 | 园豆:209 (菜鸟二级) | 2015-10-20 16:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册