zoukankan      html  css  js  c++  java
  • SQLSqlserver中如何将一列数据,不重复的拼接成一个字符串

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

    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)有时候挺有用的。

  • 相关阅读:
    简单理解同步与异步
    Python3.x 安装Scrapy框架
    Python命名规范
    python 02/100例
    raw_input与input的区别
    二叉排序树
    串和广义表
    数据结构整理 第一章
    时间复杂度
    Music
  • 原文地址:https://www.cnblogs.com/bigguai/p/3890581.html
Copyright © 2011-2022 走看看