小编San*_*mar的帖子

将多个逗号分隔的列拆分为行

我有一个表(SQL Server),它在多列中有逗号分隔的值,如下所示:

Rule_ID    ListType_ID    Values
1          1,2            100,200
2          3,4            300,400
Run Code Online (Sandbox Code Playgroud)

我想拆分逗号分隔值并将它们转换为行。

所需的输出必须如下所示:

Rule_ID    ListType_ID    Values
1          1              100
1          2              200
2          3              300
2          4              400
Run Code Online (Sandbox Code Playgroud)

我尝试了以下查询:

DECLARE @TEMP AS TABLE (
    [Rule_ID] INT,
    [ListType_ID] VARCHAR(MAX),
    [Values] VARCHAR(MAX)
)

INSERT INTO @TEMP
SELECT 1, '1,2', '100,200'
UNION ALL
SELECT 2, '3,4', '300,400' 

SELECT 
    [Rule_ID],
    PARSENAME(REPLACE(Split1.b.value('.', 'VARCHAR(100)'),'-','.'),1) AS [ListType_ID],
    PARSENAME(REPLACE(Split.a.value('.', 'VARCHAR(100)'),'-','.'),1) AS [Values] 
FROM  
(
    SELECT [Rule_ID],
    CAST ('<M>' + REPLACE([ListType_ID], ',', '</M><M>') + '</M>' AS XML) AS [ListType_ID], …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

4
推荐指数
1
解决办法
1425
查看次数

标签 统计

sql ×1

sql-server ×1

t-sql ×1