【问题标题】:Concatenate multiple rows to one row in SQL Server [duplicate]将多行连接到 SQL Server 中的一行 [重复]
【发布时间】:2018-03-28 03:30:50
【问题描述】:

我有一个 SQL Server 输出,它用一列返回以下值:

RepresentID 
---------------
111122222
3333344444
5555566666
000000090909
7777788888
9999999999
121212131313
141414151515

输出:

RepresentID
---------------
111122222
3333344444
5555566666
000000090909
7777788888
9999999999
121212131313
141414151515

【问题讨论】:

标签: sql-server sql-server-2008 string-concatenation


【解决方案1】:

需要将所有行连接成一行。

使用下面的xml路径

 SELECT STUFF((
        SELECT
            ','+cast(representid as varchar(30))
        FROM
          table 
        FOR
            XML PATH('')
        ),1,1,''
    ) AS comma_seperated_list;

在 sql2017 上,你可以像下面这样使用 string_aggregate

select string_agg(cast(representid as varchar(40)),',')
from table 

【讨论】:

  • 这是一个很好的解决方案,但是要在每个元素之间换行而不是逗号分隔的列表,您可以使用将逗号替换为 CHAR(13)(回车)、CHAR(10 )(换行),或 CHAR(13) + CHAR(10) (CRLF)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-17
相关资源
最近更新 更多