我有4个表,每个表有2列。
'第1列'是'One' '第2列'是'很多'
第1列有几个不同的ID,我需要以某种方式分组并构建所有“第2列”值的分隔字符串。
我需要为每个不同的“第1列”值执行此操作....这可能吗?
所以例如我有这张桌子..
DECLARE @tblDeadsData TABLE (
[ID] INT IDENTITY(1,1) NOT NULL,
[ContainerID] INT NULL,
[DeadsID] INT NULL
)
已经填充了数据,我需要为每个[ContainerID]构建一个ALL [DeadsID]的分隔字符串,然后需要将这些分隔的字符串放入此表中(DeadsDataTable Data进入tblLastMerge。在这种情况下DeadsIDList)..
CREATE TABLE tblLastMerge(
[ID] INT IDENTITY(1,1) NOT NULL,
[FeedLotID] INT NULL,
[ContainerID] INT NULL,
[ContainerName] VARCHAR(40) NULL,
[IsMergeTargetContainer] BIT NULL,
[PurchaseIDList] VARCHAR(1000) NULL,
[DeadsIDList] VARCHAR(1000) NULL,
[RailersIDList] VARCHAR(1000) NULL,
[FeedBillIDList] VARCHAR(1000) NULL
)
*************************** EDIT ******************* ************** 关于重复的帖子.........连接没有分隔!!!!!!难怪当我搜索我的问题时我没有看到这篇文章.....我认为你应该链接这两篇文章虽然我发现答案比(据说)原帖更简化
答案 0 :(得分:0)
谢谢......我找到了答案
- 用于保存旧死亡数据的表 DECLARE @tblDeadsData TABLE( [ID] INT IDENTITY(1,1)NOT NULL, [ContainerID] VARCHAR(10)NULL, [DeadsID] VARCHAR(10)NULL )
insert into @tbldeadsdata
values('1','2'),('1','3'),('1','4'),('2','2'),('2','3'),('2','4')
SELECT ContainerID, DeadsID = STUFF((SELECT N', ' + DeadsID
FROM @tblDeadsData AS p2
WHERE p2.ContainerID = p.ContainerID
ORDER BY DeadsID
FOR XML PATH(N'')), 1, 2, N'')
FROM @tblDeadsData AS p
GROUP BY ContainerID
ORDER BY ContainerID