字符串拆分
Version >= SQL Server 2016
使用字符分隔符拆分字符串表达式。请注意,STRING_SPLIT() 是一个表值函数,因此必须在 FROM 子句中使用。
参数:
- 字符串。任何字符类型表达式(
char,nchar,varchar或nvarchar) - 分隔符。任何类型的单个字符表达式(
char(1),nchar(1),varchar(1)或nvarchar(1))。
返回单个列表,其中每行包含字符串的片段。列的名称是 value,如果任何参数是 nchar 或 nvarchar,则数据类型为 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 的文章以正确的方式分割字符串 - 或者是对其中一些进行全面比较的下一个最佳方式 。