码迷,mamicode.com
首页 > 数据库 > 详细

SQLSqlserver中如何将一列数据,不重复的拼接成一个字符串

时间:2014-08-04 20:59:17      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   数据   ar   div   sql   log   

  把一列数据拼接成一个字符串比较简单:

declare @test varchar(500)
set @test=‘‘;
select @test=@test+name+‘,‘ from person
select @test

  但是如果数据中有重复选项,想去掉重复的就比较绕弯了。

declare @test varchar(500)
set @test=‘‘;
select distinct @test=@test+name+, from person
select @test

加distinct是不行的,我在sql server 2008 版本测试起码是不行的,只显示了第一行的数据。

绕弯一下:

declare @test varchar(500)
set @test=‘‘;
with cte as
(
select distinct name+, as name
from person
)
select @test=@test+name from cte 

select @test 

其实这个思路下,用临时表,表变量什么的都可以,但是用CTE比较简洁。看来公用表表达式(CTE)有时候挺有用的。

SQLSqlserver中如何将一列数据,不重复的拼接成一个字符串,布布扣,bubuko.com

SQLSqlserver中如何将一列数据,不重复的拼接成一个字符串

标签:style   blog   color   数据   ar   div   sql   log   

原文地址:http://www.cnblogs.com/bigguai/p/3890581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!