【问题标题】:comma delimited list as a single string, T-SQL [duplicate]逗号分隔列表作为单个字符串,T-SQL [重复]
【发布时间】:2013-08-16 15:20:42
【问题描述】:

我的 T-SQL 查询生成以下结果集

ID        Date
756 2011-08-29
756 2011-08-31
756 2011-09-01
756 2011-09-02

我怎样才能这样转换

ID                Date
756 2011-08-29, 2011-08-31, 2011-09-01, 2011-09-02

任何建议都将不胜感激。

【问题讨论】:

    标签: sql-server tsql


    【解决方案1】:

    您可以使用FOR XML PATHSTUFF 将多行连接成一行:

    select distinct t1.id,
      STUFF(
             (SELECT ', ' + convert(varchar(10), t2.date, 120)
              FROM yourtable t2
              where t1.id = t2.id
              FOR XML PATH (''))
              , 1, 1, '')  AS date
    from yourtable t1;
    

    SQL Fiddle with Demo

    【讨论】:

    • 这给了我一个起始空格字符。我通过将, 1, 1, '') AS date 更改为, 1, 2, '') AS date 来修复它。
    猜你喜欢
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多