首页 > 代码库 > SQLSqlserver中如何将一列数据,不重复的拼接成一个字符串
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)有时候挺有用的。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。