oracle中trim,ltrim,rtrim函數用法
該函數共有兩種作用:
第一種,即大家都比較熟悉的去除空格。
例子:
--TRIM去除指定字元的前後空格
SQL> SELECT TRIM(' dd df ') FROM dual;
TRIM('DDDF')
------------
dd df
--LTRIM去除指定字元的前面空格
SQL> SELECT LTRIM(' dd df ') FROM dual;
LTRIM('DDDF')
-------------
dd df
--RTRIM去除指定字元後面後空格
SQL> SELECT RTRIM(' dd df ') FROM dual;
RTRIM('DDDF')
-------------
dd df
第二種,去除指定的字元。trim只能去除單個字元,而ltrim和rtrim可以去除多個字元。
trim去除字元的寫法:
--表示字串string2去除前面|後面|前後面(leading|trailing|both)的字元string1,預設去除方式為both
SELECT TRIM(leading|trailing|both string1 FROM string2) FROM dual;
例子:
SQL> SELECT trim(leading 'd' from 'dfssa') FROM dual;
TRIM(LEADING'D'FROM'DFSSA')
---------------------------
fssa
SQL> SELECT trim(both '1' from '123sfd111') FROM dual;
TRIM(BOTH'1'FROM'123SFD111')
----------------------------
23sfd
SQL> SELECT trim(trailing '2' from '213dsq12') FROM dual;
TRIM(TRAILING'2'FROM'213DSQ12'
------------------------------
213dsq1
註:trim去除字元只能是單個字元,如下,要去除的字元若為字元集則報錯
SQL> SELECT trim(trailing '12' from '123dsq12') FROM dual;
SELECT trim(trailing '12' from '123dsq12') FROM dual
ORA-30001: 截取集僅能有一個字元
ltrim和rtrim去除字元的寫法:
--表示字串string1去除前面與string2字元集匹配的,若無匹配則結束返回
SELECT ltrim(string1,string2) FROM dual;
--rtrim與ltrim類似,只是去除的是右邊算起匹配的字元
SELECT rtrim(string1,string2) FROM dual;
例子:
--如下,由於從右邊算起,第一個字母是b沒有與'main'匹配的字元,因此返回結果仍是'aaaaminb'
SQL> SELECT rtrim('aaaaminb','main') FROM dual;
RTRIM('AAAAMINB','MAIN')
------------------------
aaaaminb
--如下返回結果為空白
SQL> SELECT rtrim('aaaaminb','mainb') FROM dual;
RTRIM('AAAAMINB','MAINB')
-------------------------
SQL> SELECT ltrim('ccbcminb','cb') FROM dual;
LTRIM('CCBCMINB','CB')
----------------------
minb