SQL Pivot:将一个列内容组合到一个单元格中

时间:2017-12-06 17:54:49

标签: sql sql-server

我在第1列中有一个ID,在第2列中有代码。我希望在下一列中获得带有代码组合的ID列表。数据示例如下:

ID  Code
211  901
211  902
211  903
208  605
208  606

我希望的结果如下所示,代码组合在一列中:

ID     Code_Combo
211    901/902/903
208    605/606

有什么想法吗?在这里很丢失。

1 个答案:

答案 0 :(得分:2)

以下是使用您的值的示例。我使用了此post的第一个答案中概述的XML PATH示例。

CREATE TABLE #Test (ID int, Code int)

INSERT INTO #Test (ID, Code) VALUES
(211, 901),
(211, 902),
(211, 903),
(208, 605),
(208, 606)

SELECT
    ID,
    SUBSTRING(Codes, 2, LEN(Codes)) AS 'Codes'
FROM
    (
        SELECT DISTINCT ID,
            (
                SELECT '/' + CAST(Code AS varchar(10))
                FROM #Test AS MTI
                WHERE MTI.ID = MTO.ID
                ORDER BY MTI.ID
                FOR XML PATH ('')
            ) Codes
        FROM #Test AS MTO
    ) AS Final

DROP TABLE #Test