合并行结果SQL

时间:2017-09-25 19:18:24

标签: sql sql-server

我查了几个似乎对我不起作用的答案,或者我的查询错误地使用了它们。

当前查询:

SELECT
    PartNo,
    SubPartNo
FROM
    Materials

当前结果:

+--------+-----------+
| PartNo | SubPartNo |
+--------+-----------+
|    541 |      5451 |
|    545 |      5451 |
+--------+-----------+

期望的结果:

+----------+-----------+
|  PartNo  | SubPartNo |
+----------+-----------+
| 541, 545 |      5451 |
+----------+-----------+

结果不一定需要逗号。我确信这是一个简单的解决办法,但我有限的专业知识正在减慢我的速度。

1 个答案:

答案 0 :(得分:0)

在评论中指示我https://sqlandme.com/2011/04/27/tsql-concatenate-rows-using-for-xml-path/后,我的问题得到了解答。

SELECT DISTINCT
    matl1.SubPartNo,
    STUFF((
            SELECT ', ' + matl2.PartNo
            FROM Materials as matl2
            WHERE matl2.SubPartNo = matl1.SubPartNo
            FOR XML PATH('')
            ),1,1,'')
FROM
    Materials as matl1