gpt4 book ai didi

sql - 使用 SQL 将逗号分隔的字符串表行拆分为单独的行

转载 作者:行者123 更新时间:2023-12-04 20:56:47 25 4
gpt4 key购买 nike

假设我有一个返回以下内容的查询

ID       SomeValue
1 a,b,c,d
2 e,f,g

我想返回如下:
ID       SomeValue
1 a
1 b
1 c
1 d
2 e
2 f
2 g

我已经有一个 UDF 调用 Split,它将接受一个字符串和一个分隔符,并将其作为一个表返回,其中包含一个名为 [Value] 的列。鉴于此,SQL 应该如何实现这一点?

最佳答案

或者,您可以像这样使用 XML:

DECLARE @yourTable TABLE(ID INT,SomeValue VARCHAR(25));

INSERT INTO @yourTable
VALUES (1,'a,b,c,d'),
(2,'e,f,g');

WITH CTE
AS
(
SELECT ID,
[xml_val] = CAST('<t>' + REPLACE(SomeValue,',','</t><t>') + '</t>' AS XML)
FROM @yourTable
)

SELECT ID,
[SomeValue] = col.value('.','VARCHAR(100)')
FROM CTE
CROSS APPLY [xml_val].nodes('/t') CA(col)

关于sql - 使用 SQL 将逗号分隔的字符串表行拆分为单独的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30920483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com