SQL插入记录对于结果集的每个记录
问题描述:
需要下面的场景的一些建议。我有两个连接的表(说表A和表B)SQL插入记录对于结果集的每个记录
表A具有ContrastId而表B具有HueID,他们被ColorId
接合Select ColorCD, ContrastId, HueId,
From TableA TA
Inner JOIN TableB TB
TA.ColorID = TB.ColorID
上述选择语句的结果应该是柱插入到另一个表(表说C)的结果
例子:
ColorCD | ContrastID | HueID
-----------------------------
111000 | 123 | 555
111100 | 114 | 548
110015 | 128 | 265
我想要什么在表C,凡在我需要把结果发生设置如下所示。
表C上的布局
INSERT INTO dbo.TableC (Gen_N, ColorCD, ColorType ,Identifier, ProcessDT)
SELECT Gen_N, ColorCD, 'Contrast' ,Identifier, ProcessDT
From TableA TA
Inner JOIN TableB TB
TA.ColorID = TB.ColorID
Gen_N | ColorCD | ColorType | Identifier
------------------------------------------
Color | 111000 | Contrast | 123
Color | 111000 | Hue | 555
Color | 111100 | Contrast | 148
Color | 111100 | Hue | 548
Color | 110015 | Contrast | 128
Color | 110015 | Hue | 256
道歉,我不知道怎么在这里插入一个表格。 :) 非常感谢您的帮助。我相信我需要在这里做一个循环来获取结果集的每个记录,但不知道如何去做。
请帮忙吗?非常感谢
答
你不应该需要一个循环。假设你的字段是正确的,你可以为Insert
做一个Union
的每种类型。
这应该隐含结构工作:
Insert TableC (Gen_N, ColorCD, ColorType, Identifier, ProcessDT)
Select Gen_N, ColorCD, 'Contrast', ContrastId, ProcessDT
From TableA TA
Join TableB TB On TA.ColorID = TB.ColorID
Union All
Select Gen_N, ColorCD, 'Hue', HueID, ProcessDT
From TableA TA
Join TableB TB On TA.ColorID = TB.ColorID
哪些列'ProcessDT'价值观 –