首页 > 开发 > 综合 > 正文

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

2024-07-21 02:49:35
字体:
来源:转载
供稿:网友
SQLSqlserver中如何将一列数据,不重复的拼接成一个字符串

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

declare @test varchar(500)set @test='';select @test=@test+name+',' from personselect @test

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

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

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

绕弯一下:

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

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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表