我有一个这样的表:
设备
DeviceId Parts
1 Part1, Part2, Part3
2 Part2, Part3, Part4
3 Part1
我想创建一个表“零件”,将数据从“零件”列导出到新表。之后,我将放置“零件”列
预期结果
部分
PartId PartName
1 Part1
2 Part2
3 Part3
4 Part4
设备部分
DeviceId PartId
1 1
1 2
1 3
2 2
2 3
2 4
3 1
我可以在SQL Server 2008中执行此操作而不使用游标吗?
- 设置:
declare @Device table(DeviceId int primary key, Parts varchar(1000))
declare @Part table(PartId int identity(1,1) primary key, PartName varchar(100))
declare @DevicePart table(DeviceId int, PartId int)
insert @Device
values
(1, 'Part1, Part2, Part3'),
(2, 'Part2, Part3, Part4'),
(3, 'Part1')
- 脚本:
declare @DevicePartTemp table(DeviceId int, PartName varchar(100))
insert @DevicePartTemp
select DeviceId, ltrim(x.value('.', 'varchar(100)'))
from
(
select DeviceId, cast('<x>' + replace(Parts, ',', '</x><x>') + '</x>' as xml) XmlColumn
from @Device
)tt
cross apply
XmlColumn.nodes('x') as Nodes(x)
insert @Part
select distinct PartName
from @DevicePartTemp
insert @DevicePart
select tmp.DeviceId, prt.PartId
from @DevicePartTemp tmp
join @Part prt on
prt.PartName = tmp.PartName
- 结果:
select *
from @Part
PartId PartName
----------- ---------
1 Part1
2 Part2
3 Part3
4 Part4
select *
from @DevicePart
DeviceId PartId
----------- -----------
1 1
1 2
1 3
2 2
2 3
2 4
3 1
问题内容: 如何在Python中将字符串(一百万)解析为整数? 问题答案: a = ‘1,000,000’ >>> int(a.replace(‘,’, ‘’)) 1000000 >>>
问题内容: 我需要能够像这样的字符串: 变成: 我有种感觉(有#python的提示),该解决方案将涉及shlex模块。 问题答案: shlex模块解决方案允许转义的引号,一个引号的转义和所有花哨的东西外壳程序支持。 转义引号示例:
问题内容: 这个问题已经在这里有了答案 : 7年前关闭。 可能重复: mysql是多列数组 我有两个表: 帖子表 Gallery中的值是Images表中的主键: 图片表 我之所以这样做,而不仅仅是在Images表中添加PostID键,是因为这些图像可以与许多不同的帖子相关联。我想我可以为关系添加另一个表,但是就我要添加到其中的jQuery脚本而言,逗号分隔的值更易于使用。 如果我在需要与PostI
问题内容: 这是当前结果,可以每天更改 我需要帮助的是在下面实现此结果。 问题答案: 使用:
问题内容: 我有一个字符串,我正在尝试将其解析为一个数字。我尝试使用,结果为2。我猜逗号是问题所在,但我将如何以正确的方式解决此问题?只需删除逗号? 问题答案: 是的,删除逗号:
我找到了以下用于匹配逗号分隔的数字或数字范围的regex: