- 类别:
:doc:`/sql-reference/functions-string`(通用)
SPLIT_PART¶
在指定字符处拆分给定的字符串,并返回请求的部分。
要返回指定字符之后的所有字符,可以使用 POSITION 和 SUBSTR 函数。有关示例,请参阅 返回电子邮件地址、电话和日期字符串的子字符串。
小技巧
您可以使用搜索优化服务,提高用于调用此函数的查询的性能。有关详细信息,请参阅 搜索优化服务。
语法¶
实参¶
string要拆分为多个部分的文本。
delimiter表示要拆分的分隔符的文本。整个分隔符字符串被视为单个分隔符,即使它包含多个字符也是如此。此行为不同于 STRTOK,后者将分隔符中的每个字符视为单独的分隔符。
partNumber请求的拆分部分,从 1 开始,因此第一个词元是词元编号 1,而不是词元编号 0。
如果该值为负数,则从字符串末尾向后计数。
返回¶
此函数返回 VARCHAR 类型的值。
如果任何实参为 NULL,则该函数返回 NULL。
使用说明¶
排序规则详细信息¶
The collation specifications of all input arguments must be compatible.
此函数不支持以下排序规则规范:
示例¶
以下示例调用 SPLIT_PART 函数:
演示针对不同部件编号值返回的部分¶
此示例显示了不同 partNumber 值返回的部分。
返回 IP 地址的第一部分和最后一部分¶
以下示例返回本地主机 IP 地址 127.0.0.1 的第一部分和最后一部分:
演示分隔符作为第一个字符¶
以下示例返回由竖线分隔的字符串的第一部分和第二部分。分隔符是输入字符串的第一部分,因此拆分后的第一个元素是空字符串。
演示多字符分隔符¶
以下示例显示了一个多字符分隔符:
演示分隔符为空字符串¶
以下示例显示,如果分隔符为空字符串,则拆分后仍然只有一个字符串:
展示 STRTOK 和 SPLIT_PART 之间的差异¶
此示例演示了使用重复的分隔符时 STRTOK 和 SPLIT_PART 的区别。STRTOK 会将分隔符字符串 '|-' 中的每个字符视为单独的分隔符,在每个 '|' 和 '-' 字符处进行拆分。相比之下,SPLIT_PART 将整个分隔符字符串 '|-' 视为单个分隔符,因此它仅在确切序列出现的位置进行拆分: