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
我创建了以下 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