SQL服务器:将多条记录合并到一个字段中

SQL Server : combine multiple records into one field

我创建了以下 SQL 脚本:

SELECT 
    E.ID,  
    abc = STUFF((SELECT ' ' + E2.ExclusionID
                 FROM Exclusion E2
                 WHERE E.ID = E2.ID 
                 FOR XML PATH ('')), 1, 0, '') 
FROM
    Exclusion E 
GROUP BY 
    E.ContractMovementID

将该ID的所有排除记录合并为一条记录显示如下:

ID     ExclusionID
-------------------
1      123
2      2345
3      4567

但是,我希望它显示为:

ID     ExclusionID
-------------------    
1      1 2 3
2      23 45
3      45 67

所以列用 space 分隔,但是,我似乎无法在它们之间放置 space。谁能帮我这个? (我希望这是有道理的)

谢谢

杰西卡

这个怎么样:

SELECT 
    E.ID,  
    abc = STUFF((SELECT '  ' + E2.ExclusionID
                 FROM Exclusion E2
                 WHERE E.ID = E2.ID 
                 FOR XML PATH ('')), 1, 1, '') 
FROM
    Exclusion E 
GROUP BY 
    E.ContractMovementID

我找到了解决方案,因为 exclusion.id 是 INT 数据类型,我必须将其转换为 varchar 才能添加分隔符。

SELECT 
    E.ID,  
    abc = STUFF((SELECT CAST(E2.ExclusionID AS VARCHAR) + ','
                 FROM Exclusion E2
                 WHERE E.ID = E2.ID 
                 FOR XML PATH ('')), 1, 0, '')  FROM
    Exclusion E  GROUP BY 
    E.ContractMovementID