具有相同ID SQL Server 2005的不同行中的Concat列

时间:2015-09-24 09:14:32

标签: sql sql-server sql-server-2005

我希望在每行中连接一个包含文本输入的列....

我正在使用SQL Server 2005

行看起来像这样

Number     Date           Update Time     description
------    -----           -----------    -------------
0123      01/01/2015      01/07/2015     Hello, I want to
0123      01/01/2015      01/01/2015     Concat these columns

希望这很容易,我只是一个简单的

2 个答案:

答案 0 :(得分:1)

你可以使用这种方法:

SELECT A.Number, MAX(A.[Date]) AS [Date], MAX(A.[Update Time]) AS [Update Time]
, STUFF((SELECT ' ' + B.description AS [text()] 
    FROM table1 B 
        WHERE A.Number = B.Number 
            FOR XML PATH('')), 1, 1, '' ) AS Description
FROM  table1 A
GROUP BY A.Number

答案 1 :(得分:1)

因为您正在处理自由格式文本,我认为最好将XML显式转换回字符数据类型:

SELECT t.Number,
       STUFF((SELECT ' ' + cast(t2.description AS nvarchar(max) )
              FROM <tablen> t2 
              WHERE t2.Number = t.Number 
              FOR XML PATH(''), TYPE
             ).VALUE('.', 'nvarchar(max)'
                    ), 1, 1, '' ) AS Description
FROM <table> t
GROUP BY t.Number;

这可以防止&<>等字符出现问题。