在 SQL 中,将一个逗号分隔的字符串转换为数组可以使用以下方法:
假设有一个字符串
str = 'apple,banana,orange'
,我们需要将其转换为一个数组。以下是两种常用的方法:
SELECT value FROM STRING_SPLIT('apple,banana,orange', ',');
这将返回一个包含字符串中各个元素的行集合。使用此方法时需要注意的是,此函数仅适用于 SQL Server 2016 及以上版本。
使用 XML:
DECLARE @str varchar(100) = 'apple,banana,orange'
SELECT
LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS value
(SELECT CAST('<root><m>' + REPLACE(@str,',','</m><m>') + '</m></root>' AS XML) AS x) t
CROSS APPLY
x.nodes('/root/m')m(n);
此方法将字符串转换为 XML,然后使用 CROSS APPLY
和 nodes
函数提取每个元素。
这两种方法都可以将逗号分隔的字符串转换为数组,具体使用哪一种方法取决于你的数据库版本和个人偏好。