Stay hungry,Stay foolish!

0%

SQL 拆分字符串成多行

需求简介:数据表中有某一列值可能含有以逗号分隔的字符串,需要以逗号为分隔符,拆分该值,讲一行数据记录拆分成多行。

一、原数据与处理后的数据

原数据:

202007242104452020-07-24-21-04-47

需要拆分处理成如下:

202007230654592020-07-23-06-55-01

将Size列有逗号的分为多行。

二、测试数据

1
CREATE TABLE Product_Size_Test ( [Product] varchar(50), [Size] varchar(50) )
2
INSERT INTO Product_Size_Test
3
VALUES
4
( 'CI-A1', '5mm,6mm' ), 
5
( 'CI-C2', '10mm,13mm' ), 
6
( 'SK-1', '3mm' )
7
8
-- DROP TABLE Product_Size_Test

三、SQL语句

1
SELECT * FROM dbo.Product_Size_Test WITH (NOLOCK)
2
3
SELECT A.Product,B.Size FROM (
4
SELECT Product,[Size] = CONVERT(xml,'<root><v>' + REPLACE([Size], ',', '</v><v>') + '</v></root>') FROM Product_Size_Test WITH (NOLOCK)
5
) AS A  OUTER APPLY
6
(
7
	SELECT Size = N.v.value('.', 'varchar(100)') FROM A.[Size].nodes('/root/v') N(v)
8
)B