0

我有一张这种结构的桌子

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

我想将此表转换为:

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

注意 :

- 最大重复数为六

-我想要一个没有重复行的表,我想将所有重复行合并到具有所有描述值的一行。

感谢您的帮助...

4

2 回答 2

3

你可以试试这个:

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
于 2015-11-20T02:37:50.453 回答
0

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

在mysql上测试过,不知道它是否可以在sql server上运行

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

对于 mssql 服务器,请尝试@mdahlman 提供的答案

https://stackoverflow.com/a/106334/3664960

于 2015-11-20T02:30:13.167 回答