#SPLIT
SPLIT函数将expr表示的字符串按照指定的分割符delimiter分割为若干个子字符串,返回第n个子字符串。
expr的值须为字符型,或可转换为字符型的其他类型,但不允许为LOB类型数据。当expr的值为NULL时,函数返回NULL。
当expr为CHAR类型时,系统截断其尾部空格。
delimiter
分割符,须为字符型,或可转换为字符型的其他类型,但不允许为LOB类型数据。
delimiter为与expr相同的通用表达式,当delimiter的值为NULL时,函数返回NULL。
当delimiter为CHAR类型时,若为非空格串,系统截断其尾部空格;若为空格串,系统截断并保留一个空格。
n
指定返回的子字符串序号,须为数值型,或可转换为NUMBER的字符型数据。对于带有小数的数据,小数部分截断,保留整数位。
n为与expr相同的通用表达式,当n的值为NULL时,函数返回NULL。
当n的值为正数时,表示按从左往右的顺序;当n的值为负数时,表示按从右往左的顺序;当n的绝对值大于分割后的子字符串个数,函数将返回NULL;当n为0时,函数将会报错。
示例
SELECT SPLIT('a,b,c', ',', 1) a
,SPLIT('a,b,c', ',', 4) b
,SPLIT('广东省深圳', '省', 1) c
,SPLIT('a,b,c', ',' , 2.9) d
FROM DUAL;
A B C D
----- ----- --------- -----
a 广东 b