Oracle trim 函数
如果问在Oracle中trim函数的作用,估计99%的人都会说是去空格的,其实trim函数不止可以去空格,最近在开发中用的到了trim的其它功能,今天就正好梳理一下trim函数的全部功能,先看一下trim函数的语法图:
根据Oralce官方给出的语法图,trim函数可以去除特定的字符,也就是参数:trim_character,而且有LEADING、TRAILING和BOTH三个参数来控制去除的范围。
第一个例子
21:43:39 SCOTT@ orcl>select trim(LEADING 'c' FROM 'cabc') from dual; TRI --- abc 1 row selected.
首先trim_character传入的是’c’,也就是要去除源字符串的’c’,
LEADING参数控制着范围,也就是字符串首的。
第二个例子
21:52:25 SCOTT@ orcl>select trim(TRAILING 'c' FROM 'cabc') from dual; TRI --- cab 1 row selected.
参考第一个例子的解释,这个就不用解释了吧!
如果没有输入控制范围的参数,默认就是BOTH:
21:55:01 SCOTT@ orcl>select trim( 'c' FROM 'cabc') from dual; TR -- ab 1 row selected. Elapsed: 00:00:00.00 21:55:41 SCOTT@ orcl>select trim(BOTH 'c' FROM 'cabc') from dual; TR -- ab 1 row selected.
当没有输入trim_character参数时,该函数的功能才是大多数人心目中的那个去空格
22:02:34 SCOTT@ orcl>SELECT length(TRIM(both FROM ' abc ')) RESULT FROM dual; RESULT ---------- 3
注意:不要贪心trim_character只允许是一个字符或为空。多个会直接报错
22:02:37 SCOTT@ orcl>select trim(BOTH 'ca' FROM ' cabc ') from dual; select trim(BOTH 'ca' FROM ' cabc ') from dual * ERROR at line 1: ORA-30001: trim set should have only one character