如何在特殊情况下合并 SQL 中的重复行

How can i merge duplicate rows in SQL with an special condition

我有一个 table 这种结构

ID    Word         description
-------------------------------
1     book       a lot of paper
2     book       a thing
3     book       an amazing thing
4     tv         television

我想将此 table 转换为:

ID    Word         description
-------------------------------
1     book       a lot of paper,a thing,an amazing thing
2     tv         television

注意:

-最大重复次数为六次

-我想要一个没有重复行的 table,我想将所有重复行合并为包含所有描述值的一行。

感谢您的帮助...

在您的查询中,您应该按单词分组并按描述连接

已在 mysql 上测试过,不确定它是否适用于 sql 服务器

SELECT id, GROUP_CONCAT(description SEPARATOR ', ')
FROM tablename GROUP BY word

和 mssql 服务器 试试@mdahlman

提供的答案

你可以试试这个:

SELECT
    ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) AS Id,
    *
FROM (
    SELECT DISTINCT Word,
        STUFF((SELECT ',' + description
               FROM Your_Table
               WHERE Word = T.Word
               FOR XML PATH('')), 1, 1, '') AS description
    FROM Your_Table T) AS A