Luk*_*uke 14 sql sql-server-2005
在我的SQL Server 2005数据库中,使用SLQ查询,是否有人知道将记录组合在一起的最佳方法,并从另一个字段获取逗号分隔的值列表?
所以,如果我有:
UserID Code
1 A
1 C5
1 X
2 V3
3 B
3 D
3 NULL
3 F4
4 NULL
Run Code Online (Sandbox Code Playgroud)
我得到:
UserID Code
1 A,C5,X
2 V3
3 B,D,F4
4 NULL
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
Luc*_*ero 17
WITH Data AS (
SELECT 1 UserId, 'A' Code
UNION ALL
SELECT 1, 'C5'
UNION ALL
SELECT 1, 'X'
UNION ALL
SELECT 2, 'V3'
UNION ALL
SELECT 3, 'B'
UNION ALL
SELECT 3, 'D'
UNION ALL
SELECT 3, NULL
UNION ALL
SELECT 3, 'F4'
UNION ALL
SELECT 4, NULL
)
SELECT U.UserId, STUFF((
SELECT ','+Code FROM Data WHERE Data.UserID = U.UserID FOR XML PATH('')
), 1, 1, '') Code
FROM (SELECT DISTINCT UserID FROM Data) U
Run Code Online (Sandbox Code Playgroud)
只需Data
用您的表名替换CTE就可以了.