Oracle TRIM函數(shù)語法介紹
Oracle TRIM函數(shù)是很常見的函數(shù),下面對(duì)Oracle TRIM函數(shù)的語法作了詳盡的闡述說明,希望可以讓您對(duì)Oracle TRIM函數(shù)有更深的認(rèn)識(shí)。
如果提到Oracle TRIM函數(shù),最簡單的功能就是使用它來去除字符串的行首和行尾的空格,這個(gè)功能也是大家使用頻率***的一種。
然而Oracle TRIM函數(shù)其實(shí)是具有刪除“任意指定”字符的功能,不可謂不牛。我們來一次體驗(yàn)之旅。
1.先看一下Oracle TRIM函數(shù)的完整語法描述
TRIM([ { { LEADING | TRAILING | BOTH }
[ trim_character ]
| trim_character
}
FROM
]
trim_source
)
以上語法引自于Oracle 10gR2官方文檔:http://download.oracle.com/docs/ ... 0/img_text/trim.htm
單從這個(gè)語法定義上我們就可以看出,小小的Oracle TRIM函數(shù)蘊(yùn)含了更多可定制的功能。一一展示,供參考。
2.最簡單的用法開始
不使用任何參數(shù):
gloria@www.dweye.net> select trim (' DWEYE ') "TRIM e.g." from dual;
TRIM e.g
--------
DWEYE
這也是最常見的一種使用方法,都使用默認(rèn)的參數(shù),默認(rèn)情況下TRIM會(huì)同時(shí)刪除字符串前后出現(xiàn)的空格。
3.其實(shí)***種常用的方法等同于下面帶有“BOTH”參數(shù)的寫法
gloria@www.dweye.net> select trim (both from ' DWEYE ') "TRIM e.g." from dual;
TRIM e.g
--------
DWEYE
“BOTH”參數(shù)表示同時(shí)去除字符串前后所指定的內(nèi)容(默認(rèn)情況下刪除空格)。
4.既然試用了BOTH參數(shù),我們?cè)倏匆幌?ldquo;TRAILING”和“LEADING”參數(shù)效果
gloria@www.dweye.net> select trim (trailing from ' DWEYE ') "TRIM e.g." from dual;
TRIM e.g.
------------
DWEYE
gloria@www.dweye.net> select trim (leading from ' DWEYE ') "TRIM e.g." from dual;
TRIM e.g.
------------
DWEYE
可見,使用“TRAILING”參數(shù)可以完成字符串尾部空格的刪除功能;而“LEADING”參數(shù)正好相反,完成字符串頭部空格的刪除功能。
也就是說,使用“TRAILING”和“LEADING”參數(shù)可以指定空格的刪除位置。
5.“trim_character”參數(shù)粉墨登場
這個(gè)參數(shù)改變了“刪除空格”的默認(rèn)行為。
如果想要?jiǎng)h除字符串'xxxxDWEYExxxx'前后出現(xiàn)的“x”,“trim_character”參數(shù)就派上用場了。
gloria@www.dweye.net> select trim ('x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual;
TRIM e.g
--------
DWEYE
配合“BOTH”、“TRAILING”和“LEADING”三個(gè)參數(shù)使用效果如下,與之前演示類似??唇Y(jié)果,不贅述。
gloria@www.dweye.net> select trim (both 'x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual;
TRIM e.g
--------
DWEYE
gloria@www.dweye.net> select trim (trailing 'x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual;
TRIM e.g.
------------
xxxxDWEYE
gloria@www.dweye.net> select trim (leading 'x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual;
TRIM e.g.
------------
DWEYExxxx
6.需要注意的地方
這里的“trim_character”參數(shù)只允許包含一個(gè)字符,不支持多字符。
報(bào)錯(cuò)信息如下:
gloria@www.dweye.net> select trim (leading 'xy' from 'xyxxDWEYExyyx') "TRIM e.g." from dual;
select trim (leading 'xy' from 'xyxxDWEYExyyx') "TRIM e.g." from dual
*
ERROR at line 1:
ORA-30001: trim set should have only one character
既然TRIM不能滿足我們刪除只剩“DWEYE”字符串的要求,有么有其他手段呢?of course有。我們使用RTRIM和LTRIM“連環(huán)拳”完成這個(gè)任務(wù)。
1)使用RTRIM
gloria@www.dweye.net> select rtrim('xyxxDWEYExyyx','xy') "e.g." from dual;
e.g.
------------
xyxxDWEYE
2)使用LTRIM
gloria@www.dweye.net> select ltrim('xyxxDWEYExyyx','xy') "e.g." from dual;
e.g.
------------
DWEYExyyx
3)聯(lián)合使用RTRIM和LTRIM函數(shù)達(dá)到我們的目的
gloria@www.dweye.net> select ltrim(rtrim('xyxxDWEYExyyx','xy'),'xy') "e.g." from dual;
e.g.
--------
DWEYE
使用RTRIM和LTRIM函數(shù)時(shí)的注意事項(xiàng):“xy”不表示整個(gè)“xy”字符串進(jìn)行匹配,而是發(fā)現(xiàn)任意的字符“x”或字符“y”均做刪除操作。
7.小結(jié)
在感受Oracle函數(shù)帶來便利的同時(shí),建議對(duì)每一個(gè)常用函數(shù)都追本溯源地探究一下,也許在嘗試之后您會(huì)發(fā)現(xiàn):哦,原來大家經(jīng)常用到這些方法只是其真實(shí)功能的滄海一粟。
【編輯推薦】


















