我有两个表:表 A 保存主产品数据,表 B 保存子产品数据。当表 A 只有一个不同的值时,我想更新表 A 以保存表 B 中相同列的相同值。如果不同计数大于一,我想用逗号连接列。除了键列名称之外,这些表具有相同的列。
是否可以编写动态 SQL 来匹配所有列并处理合并/串联?
下面的例子:
Table A
ID | color | Location
____| ______|_____________
1 | |
2 | |
3 | |
4 | |
Table B
child_ID | parent_id | Color | Location
__________|___________|________|_________
1 | 1 | white | house
2 | 2 | red | garage
3 | 2 | white | garage
4 | 3 | blue | house
表 A 如下所示:
ID | color | Location
____| ___________|_____________
1 | white | house
2 | red, white | garage
3 | white | house
我认为这会做到这一点:
SELECT parent_id AS ID,
STUFF((
SELECT ','+color FROM TableB a WHERE a.parent_id = b.parent_id FOR XML PATH('')
),1,1,'') AS color,
STUFF((
SELECT ','+Location FROM TableB a WHERE a.parent_id = b.parent_id FOR XML PATH('')
),1,1,'') AS Location,
FROM TableB b
GROUP BY parent_id
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)