sql string转array

在 SQL 中,将一个逗号分隔的字符串转换为数组可以使用以下方法:

假设有一个字符串 str = 'apple,banana,orange' ,我们需要将其转换为一个数组。以下是两种常用的方法:

  • 使用 STRING_SPLIT 函数(仅适用于 SQL Server 2016 及以上版本):
  • 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 APPLYnodes 函数提取每个元素。

    这两种方法都可以将逗号分隔的字符串转换为数组,具体使用哪一种方法取决于你的数据库版本和个人偏好。

  •