Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server sqlserver中的Split函数_Sql Server_Database_Database Administration - Fatal编程技术网

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