Sql server sqlserver中的Split函数
我有两张桌子: 表格温度:Sql server sqlserver中的Split函数,sql-server,database,database-administration,Sql Server,Database,Database Administration,我有两张桌子: 表格温度: Itemcode Barcode --------------------------------------- 100001 896633212,586231478 100002 639933212/236232369 100003 930933212 987232369 633214589 100004 940933212 我想将数据插入另一个表Tablebarcode,如下所示 ItemCode Barcode
Itemcode Barcode
---------------------------------------
100001 896633212,586231478
100002 639933212/236232369
100003 930933212 987232369 633214589
100004 940933212
我想将数据插入另一个表Tablebarcode
,如下所示
ItemCode Barcode
---------------------
100001 896633212
100001 586231478
100002 639933212
100002 236232369
100003 930933212
100003 987232369
100003 633214589
100004 940933212
首先,给自己弄个字符串看看这个 它构建的函数允许您传入一个带分隔符的字符串,并将每个值拆分到自己的行中
select tt.ItemCode, x.ItemValue as BarCode
from TableTemp tt
cross apply SplitString_CRL(BarCode, ' ')
这会将每个重载条形码拆分为一行。交叉应用拆分函数多次,并使用不同的分隔符
select *
from Tabletemp t
cross apply DelimitedSplit8K(t.Barcode, ',') a
cross apply DelimitedSplit8K(a.Item, '/') b
cross apply DelimitedSplit8K(b.Item, ' ') c
这里我使用的是Jeff Moden的DelimitedSplit8K
转换为Xml并拆分,我们可以得到结果
SELECT Itemcode,
split.a.value('.', 'nvarchar(1000)') AS Barcode
FROM (SELECT Itemcode,
Cast('<S>'
+ Replace(Replace(Replace(Barcode, '/', ','), ' ', ','), ','
,
'</S><S>')
+ '</S>' AS XML) AS Barcode
FROM #tabletemp) AS A
CROSS apply barcode.nodes('S') AS Split(a)
有很多问题问同样的问题,其中一个()但我这里有/或逗号或空格我必须分成三种情况谢谢你的回答,但我有/或逗号或空格
ItemCode Barcode
---------------------
100001 896633212
100001 586231478
100002 639933212
100002 236232369
100003 930933212
100003 987232369
100003 633214589
100004 940933212