SQL STRING_SPLIT() 函数
SQL STRING_SPLIT() 函数用于将字符串转换为列。
它接受 三个 参数 str , separator 和 enable_ordinal ,并根据指定的分隔符字符将字符串拆分为子字符串的行。如果未启用序数输出列, STRING_SPLIT() 函数返回一个单列表,其行是子字符串。
列的名称将为 VALUE 。如果输入参数中的任何一个是 nvarchar 或 nchar,则返回 nvarchar。否则,返回 varchar。返回类型的长度与字符串参数的长度相同。
语法
以下是 SQL STRING_SPLIT() 函数的语法:
参数
- str − 它是任意字符类型的表达式(比如 nvarchar、varchar、nchar)。
-
separator − 它是任意字符类型的单个字符表达式,用作连接子字符串的分隔符。
-
enable_ordinal − 它是一个 int 或 bit 表达式,用作启用或禁用序号输出列的标志。
下面是关于 enable_ordinal 参数的一些重要说明:
- 它是一个可选参数。
-
如果 enable_ordinal 参数的值为 1 ,则启用序号列。
-
如果 enable_ordinal 的值为 NULL ,则序号列被省略。
-
如果 enable_ordinal 的值为 0 ,则禁用序号列。
示例
在以下示例中,我们使用 SQL STRING_SPLIT() 函数将字符串内容 (‘Java’, ‘HTML’, ‘CSS’, ‘JavaScript’, ‘Angular’) 转换为列。
输出
以下是以上语句的输出-
示例
如果我们将 enable_ordinal 参数的值设置为 1 传递给函数,它 启用 输出列。
在下面的示例中,我们使用 STRING_SPLIT() 函数将字符串 (’欢迎来到教程点家族’) 的内容转换为列。
输出
执行上述程序后,将产生以下输出:
示例
如果您将 enable_ordinal 参数的值设为 0 传递给函数,它 禁用 输出列。
在下面的示例中,我们将 enable_ordinal 参数的值设为0传递给 STRING_SPLIT() 函数。然后,使用此函数,我们试图将字符串 (‘Hello World’) 的内容转换为一列。
输出
上述程序生成以下输出 −
示例
如果我们将 enable_ordinal 参数值传递为 NULL 给函数,该函数会忽略输出列。
在下面的示例中,我们将enable_ordinal参数值传递为NULL给 STRING_SPLIT() 函数。然后,我们使用这个函数尝试将字符串内容 (‘Java IS A PROGRAMMING LANGUAGE’,’ ‘, NULL) 转换成列。
输出
以下是上述SQL查询的输出结果-
示例
您还可以将表列作为参数传递给 STRING_SPLIT() 函数,以便根据值列表查找行。假设我们使用以下 CREATE 语句创建了一张名为 Customers 的表 −
现在,让我们使用INSERT语句将四条记录插入到customers表中,如下所示: records 。
下面的SQL查询通过Customers表的值列表检索行:
输出
以下是上述查询的输出结果 –