我有表TestTable
ID Name
-------
1 A
1 B
1 C
2 D
2 E
3 F
我想在 SQL Server 2008 中编写一个查询,该查询将返回
ID Name
----------
1 A,B,C
2 D,E
3 F
请有人帮我写这个查询。
最佳答案
据我所知,没有本地方法可以做到这一点。但是,您可以使用 FOR XML
这样做:
SELECT
t1.Id,
STUFF((
SELECT ', ' + t2.name
FROM Table1 t2
WHERE t2.ID = t1.ID
FOR XML PATH (''))
,1,2,'') AS Names
FROM Table1 t1
GROUP BY t1.Id;
SQL Fiddle Demo
这会给你:
| ID | NAMES |
----------------
| 1 | A, B, C |
| 2 | D, E |
| 3 | F |
关于SQL 选择一列中的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14065277/