我有一个表(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)