0%

SQL-截取字符串

使用SUBSTR函数截取字符串,MySQL和Oracle可能会有不同的结果。

Oracle

使用SUBSTR函数截取字符串,从position开始,截取长度为substring_length

语法

1
2
3
4
5
6
7
{ SUBSTR
| SUBSTRB
| SUBSTRC
| SUBSTR2
| SUBSTR4
}
(char, position [, substring_length ])
  • position是0的时候,被视为1。
  • position是正数的时候,那一位就是子字符串的第一位。
  • position是负数的时候,从末尾开始数第几位。
  • substring_length省略的时候,会取值到最后一位。
  • substring_length比1小的时候,返回null。

使用

1
SELECT SUBSTR('ABCDEFG',2,4) FROM DUAL;

返回BCDE

1
SELECT SUBSTR('ABCDEFG',-4,3) FROM DUAL;

返回DEF

MySQL

使用语法

SUBSTR(str,pos), SUBSTR(str FROM pos), SUBSTR(str,pos,len), SUBSTR(str FROM pos FOR len)

  • 没有len参数的时候,从str的第pos位开始的全字符串。
  • pos是0的时候,返回为空字符串。

参考资料