字符串拆分

Version >= SQL Server 2016

使用字符分隔符拆分字符串表达式。请注意,STRING_SPLIT() 是一个表值函数,因此必须在 FROM 子句中使用。

参数:

  1. 字符串。任何字符类型表达式(charncharvarcharnvarchar
  2. 分隔符。任何类型的单个字符表达式(char(1)nchar(1)varchar(1)nvarchar(1))。

返回单个列表,其中每行包含字符串的片段。列的名称是 value,如果任何参数是 ncharnvarchar,则数据类型为 nvarchar,否则为 varchar

以下示例使用 space 作为分隔符拆分字符串:

SELECT value FROM STRING_SPLIT('Lorem ipsum dolor sit amet.', ' ');

结果:

valueLorem
ipsum
dolor
sit
amet.

备注:

STRING_SPLIT 功能仅在兼容级别 130 下可用。如果你的数据库兼容级别低于 130,则 SQL Server 将无法找到并执行 STRING_SPLIT 功能。你可以使用以下命令更改数据库的兼容级别:

ALTER DATABASE [database_name] SET COMPATIBILITY_LEVEL = 130

Version < SQL Server 2016

旧版本的 sql server 没有内置的拆分字符串函数。有许多用户定义的函数可以处理拆分字符串的问题。你可以阅读 Aaron Bertrand 的文章以正确的方式分割字符串 - 或者是对其中一些进行全面比较的下一个最佳方式