【问题标题】:How to get the values of column in SQL comma separated [duplicate]如何获取 SQL 逗号分隔的列的值 [重复]
【发布时间】:2014-03-03 11:17:46
【问题描述】:

您好,我的原始数据如下

Id   | Value
-----+------
0001 | IN
0001 | ME
0001 | OH
0001 | ON
0002 | AC
0002 | ON
0002 | VI
0002 | ZO
0003 | ME
0003 | OO
0003 | PS
0003 | QA

想要获取数据

Id   | Value
-----+------
0001 | IN,ME,OH,ON
0002 | AC,ON,VI,ZO
0003 | ME,OO,PS,QA

在 SQL Server 2008 中

【问题讨论】:

  • 我已经在 sql server 中测试了这个查询,,,它工作得很好,你可以利用答案,不要忘记将答案标记为正确,以便将来帮助其他人。

标签: sql sql-server-2008


【解决方案1】:

这将起作用:

  SELECT
  t1.ID,
  MemberList = substring((SELECT ( ', ' + Value )
                       FROM your_table t2
                       WHERE t1.ID = t2.ID
                       ORDER BY 
                          ID,
                          Value
                       FOR XML PATH( '' )
                      ), 3, 1000 )FROM your_table t1
   GROUP BY ID

【讨论】:

    【解决方案2】:
        drop table #t
        
    create table #t(id varchar(10),value char(10))
    
    insert into #t values('0001','IN'),
    ('0001','ME'),
    ('0001','OH'),
    ('0001','ON'),
    ('0002','AC'),
    ('0002','ON'),
    ('0002','VI'),
    ('0002','ZO'),
    ('0003','ME'),
    ('0003','OO'),
    ('0003','PS'),
    ('0003','QA')
    
    select distinct id,
        stuff((select ',' + CAST(t2.Value as varchar(10))
         from #t t2 where t1.id = t2.id 
         for xml path('')),1,1,'') as Value
    from #t t1
    group by id,Value
    

    输出:

    See Demo

    【讨论】:

      猜你喜欢
      • 2015-01-01
      • 2012-09-22
      • 2014-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多