SQL SERVER 字符串函数 STRING_SPLIT()

时间:2021-08-13 15:07:01

定义:

STRING_SPLIT()函数根据指定的分隔符将字符串拆分为子字符串行。

※STRING_SPLIT 要求兼容性级别至少为 130。 (即SSMS 2016及以上版本)

※级别低于 130 时,SQL Server 找不到 STRING_SPLIT 函数。

※若要更改数据库的兼容性级别,请参阅查看或更改数据库的兼容性级别

语法:

STRING_SPLIT ( string , separator )

参数:

string:任何字符类型(例如 nvarchar、varchar、nchar 或 char)的表达式。

separator:任何字符类型(例如 nvarchar(1)、varchar(1)、nchar(1) 或 char(1))的单字符表达式,用作串联子字符串的分隔符。

返回值:

返回子字符串的单列的表(table)。 该列名为“value”。 如果任何输入参数为 nvarchar 或 nchar,则返回 nvarchar。 否则,返回 varchar。 返回类型的长度与字符串参数的长度相同。

输出行可以按任意顺序排列。 顺序不保证与输入字符串中的子字符串顺序匹配。 可以通过在 SELECT 语句中使用 ORDER BY 子句覆盖最终排序顺序 (ORDER BY value)。

当输入字符串包含两个或多个连续出现的分隔符字符时,将出现长度为零的空子字符串。 空子字符串的处理方式与普通子字符串相同。 可以通过使用 WHERE 子句筛选出包含空的子字符串的任何行 (WHERE value <> '')。 如果输入字符串为 NULL,则 STRING_SPLIT 表值函数返回一个空表。

例:

SELECT value FROM string_split('hello world',' ')

结果:

value
hello
world

参考原文地址:https://docs.microsoft.com/zh-cn/sql/t-sql/functions/string-split-transact-sql?view=sql-server-2017

声明:本文是本人查阅网上及书籍等各种资料,再加上自己的实际测试总结而来,仅供学习交流用,请勿使用于商业用途,任何由此产生的法律版权问题概不负责,谢谢。