SUBSTRB(c1,n1[,n2])
截取子字符串,在字符表达式 c1 里,从 n1 开始取 n2 个字符;若不指定 n2,则从第 n1 个字符直到结束的字串。多字节符(汉字、全角符等),按2个字符计算。
c1 待截取的字符串
n1 截取子字符串的开始位置
n2 截取字符串的个数
字符型,如果从多字符右边开始,则用空格表示。
(1)使用 SUBSTRB 函数从字符串中截取手机号码,如下:
SQL> select SUBSTRB('我手机15881223324', 4, 11) from dual; SUBSTRB('我 ----------- 机15881223
由运行结果可知,SUBSTRB 函数对多字节字符按 2 个字符计算。因此 “我手” 字符串表示4个字符。
(2)如果使用 SUBSTRB 函数时指定的位置刚好位于多字节符的某个字符,则丢弃不全的那个字符。如下:
SQL> select SUBSTRB('我手机15881223324', 3, 11) from dual; SUBSTRB('我 ----------- 手机1588122