Split_part 函数
Split_part函数是GBase 8a数据库中的一个字符串处理函数,用于将一个字符串按照指定的分隔符进行切割,并返回指定位置的子字符串。
函数语法
SPLIT_PART(str string, delimiter string, field int)
参数说明| 参数名称 | 说明 |
| str | 待分割的原始字符串。支持中英文、数字及各种符号。可以是列名、函数或常量,但不能是BLOB、LONGBLOB等二进制数据类型。 |
| delimiter | 分隔符。支持单字符或多字符,同样支持各种符号。暂不支持单独的转义符号 \ 。 |
| field | 指定要返回的子串位置。为有符号整数类型,取值范围是 [-2147483648, 2147483647]。 |
功能规则
该函数根据分隔符在字符串中出现的次数 n ,并结合 field 参数的值,遵循以下规则返回结果:
当 0 < field <= n+1 时,返回从左到右数第 field 段的子字符串。
当 field = 0 ,或 str 长度为0,或 delimiter 长度为0时,返回空串 ( '' )。
当 field > n+1 时,返回空串。
当 n = 0 (即字符串中没有指定的分隔符)时,无论 field 为何值,都返回空串。
当 -(n+1) <= field < 0 时,返回从右到左数第 |field| 段的子字符串。
当 field < -(n+1) 时,返回空串。
如果三个参数中任意一个为 NULL ,函数返回 NULL 。
如果传入的参数少于三个,函数会报错。
使用示例
以下是一些典型的使用示例,可以帮助你更好地理解其用法:
获取正向第一个字段:
SELECT SPLIT_PART('www.gbase.com.cn', '.', 1);
-- 结果:'www'
获取正向第二个字段:
SELECT SPLIT_PART('www.gbase.com.cn', '.', 2);
-- 结果:'gbase'
获取反向第一个字段(最后一个):
SELECT SPLIT_PART('www.gbase.com.cn', '.', -1);
-- 结果:'cn'[图片]
获取反向第二个字段:
SELECT SPLIT_PART('南.大.通.用', '.', -2);
-- 结果:'通'
参数为NULL的情况:
SELECT SPLIT_PART('南.大.通.用', '.', NULL);
-- 结果:NULL
字段位置超出范围:
SELECT SPLIT_PART('www.gbase.com.cn', '.', 9999);
-- 结果:'' (空字符串)
版本支持说明
需要注意的是,SPLIT_PART函数在GBase 8a的 9.5.3.28版本 开始支持。如果你的集群版本低于此版本,可能无法使用该函数。
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25051
- 42023-09-25浏览数:18521
- 52020-05-11浏览数:17526