您所在的位置: 程序员家园 -> 家园博客 ->
 
在哪里摔倒
就在哪里自己爬起来

用户登录

查  找

最新评论

最新留言

常用网站

网易邮箱 GMAIL  

百度搜索 MSDN

霏凡软件 BT精品

影视帝国 射 手 网

电驴下载 全 库 网

友情连接

茄菲的窝 冰冰博客

枫叶飘零 玫  瑰

ACEN 云 豹 子

统  计



刚刚学到的不用游标连接N个记录某一个字段的值的方法
狼子 发表于 2007-3-15 17:44:00 阅读全文 | 回复(0) | 引用通告 | 编辑

贴子:http://www.tiantiansoft.com/bbs/dispbbs.asp?boardID=10&ID=149707

测试数据表D_Area,有字段:did、dna

如果是使用游标,需要这样:

declare @dna varchar(20), @temp varchar(20)
select @dna=''
declare dna_cur cursor for select dna from D_Area
open  dna_cur
  fetch next from dna_cur into @temp
  while @@fetch_status=0
    begin
      if @temp is not null
         begin
           select @dna=@dna + ',' + isnull(@temp,'')
         end
      fetch next from dna_cur into @temp
    end
close dna_cur
deallocate dna_cur
select @dna=substring(@dna,2,len(@dna)-1)
print @dna

以下是引用unsigned在2007-3-15 17:12:00的发言:

不需要cursor,定义一个外部变量,然后select自动会累加

方法:

declare @dna varchar(20)
select @dna=''
select @dna=@dna + isnull(dna,'') + ',' from D_Area --where dna is not null
if @dna is null
   begin
     print 'null'
   end
else
   begin
     print @dna
   end

红色那里条件注释掉了,如果是要每个记录都加上,null值用''替换,就不要用条件了,如果是只要有值的记录,那就使用条件,前面去掉isnull函数

以前这样的东西,一直都是用游标做的,都不知道原来sql可以这样用法

发表评论:

    昵称:
    密码:
    主页:
    标题:
Powered by Oblog.