oracle中的trim函數(shù)使用介紹
Oracle TRIM函數(shù)是很常見(jiàn)的函數(shù),下面對(duì)Oracle TRIM函數(shù)的語(yǔ)法作了詳盡的闡述說(shuō)明,希望可以讓您對(duì)Oracle TRIM函數(shù)有更深的認(rèn)識(shí)。
如果提到Oracle TRIM函數(shù),最簡(jiǎn)單的功能就是使用它來(lái)去除字符串的行首和行尾的空格,這個(gè)功能也是大家使用頻率最高的一種。
然而Oracle TRIM函數(shù)其實(shí)是具有刪除“任意指定”字符的功能,不可謂不牛。我們來(lái)一次體驗(yàn)之旅。
1.先看一下Oracle TRIM函數(shù)的完整語(yǔ)法描述
TRIM([ { { LEADING | TRAILING | BOTH }
[ trim_character ]
| trim_character
}
FROM
]
trim_source
)
以上語(yǔ)法引自于Oracle 10gR2官方文檔:http://download.oracle.com/docs/ ... 0/img_text/trim.htm
單從這個(gè)語(yǔ)法定義上我們就可以看出,小小的Oracle TRIM函數(shù)蘊(yùn)含了更多可定制的功能。一一展示,供參考。
2.最簡(jiǎn)單的用法開(kāi)始
不使用任何參數(shù):
gloria@www.dweye.net> select trim (' DWEYE ') "TRIM e.g." from dual;
TRIM e.g
--------
DWEYE
這也是最常見(jiàn)的一種使用方法,都使用默認(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è)倏匆幌隆癟RAILING”和“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
可見(jiàn),使用“TRAILING”參數(shù)可以完成字符串尾部空格的刪除功能;而“LEADING”參數(shù)正好相反,完成字符串頭部空格的刪除功能。
也就是說(shuō),使用“TRAILING”和“LEADING”參數(shù)可以指定空格的刪除位置。
5.“trim_character”參數(shù)粉墨登場(chǎng)
這個(gè)參數(shù)改變了“刪除空格”的默認(rèn)行為。
如果想要?jiǎng)h除字符串'xxxxDWEYExxxx'前后出現(xiàn)的“x”,“trim_character”參數(shù)就派上用場(chǎng)了。
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不能滿足我們刪除只?!癉WEYE”字符串的要求,有么有其他手段呢?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ù)帶來(lái)便利的同時(shí),建議對(duì)每一個(gè)常用函數(shù)都追本溯源地探究一下,也許在嘗試之后您會(huì)發(fā)現(xiàn):哦,原來(lái)大家經(jīng)常用到這些方法只是其真實(shí)功能的滄海一粟。
以下是其它網(wǎng)友的補(bǔ)充:
如 trim('字符1' from '字符串2') ,字符1只能是單個(gè)字符。
1. trim()刪除字符串兩邊的空格。
2. ltrim()刪除字符串左邊的空格。
3. rtrim()刪除字符串右邊的空格。
4. trim('字符1' from '字符串2') 分別從字符2串的兩邊開(kāi)始,刪除指定的字符1。
5. trim([leading | trailing | both] trim_char from string) 從字符串String中刪除指定的字符trim_char。
leading:從字符串的頭開(kāi)始刪除。
trailing:從字符串的尾部開(kāi)始刪除。
borth:從字符串的兩邊刪除。
6. tim()只能刪除半角空格。
For example:
trim(' tech ') would return 'tech';
trim(' ' from ' tech ') would return 'tech';
trim(leading '0' from '000123') would return '123';
trim(trailing '1' from 'Tech1') would return 'Tech';
trim(both '1' from '123Tech111') would return '23Tech';
oracle中的trim函數(shù)
Oracle中的trim函數(shù)是用來(lái)刪除給定字符串或者給定數(shù)字中的頭部或者尾部的給定字符。
trim函數(shù)具有如下的形式
trim([leading/trailing/both][匹配字符串或數(shù)值][from][需要被處理的字符串或數(shù)值])
這里如果指明了leading表示從刪除頭部匹配的字符串,如果指明了trailing表示從刪除尾部匹配的字符串,如果指明了both,或者不指明任何位置,則兩端都將被刪除
如果不指明任何匹配字符串或數(shù)值則認(rèn)為是空格,即刪除前面或者后面的空格。
trim函數(shù)返回的類型是varchar2
下面是一些例子:
截去了數(shù)字7500的后面的兩個(gè)0
SQL> select trim(0 from 7500) from dual;
TRIM
—-
75
下面的例子截去了' 中秋八月中'前后的兩個(gè)'中'字
SQL> select trim('中‘ from ‘中秋八月中‘) as 詩(shī) from dual;
詩(shī)
——————
秋八月
下面的例子截去了' 半夜二更半'前面的一個(gè)'半'字
SQL> select trim(leading ‘半‘ from ‘半夜二更半‘) as 詩(shī) from dual;
詩(shī)
————————
夜二更半
- Python函數(shù)返回值實(shí)例分析
- Python中用函數(shù)作為返回值和實(shí)現(xiàn)閉包的教程
- Python簡(jiǎn)單調(diào)用MySQL存儲(chǔ)過(guò)程并獲得返回值的方法
- shell腳本中執(zhí)行python腳本并接收其返回值的例子
- ORACLE常用數(shù)值函數(shù)、轉(zhuǎn)換函數(shù)、字符串函數(shù)
- oracle 存儲(chǔ)過(guò)程和函數(shù)例子
- ORACLE時(shí)間函數(shù)(SYSDATE)深入理解
- 給Oracle添加split和splitstr函數(shù)的方法
- oracle to_char函數(shù)將number轉(zhuǎn)成string
- python讀取oracle函數(shù)返回值
相關(guān)文章
ORA-02298: 無(wú)法驗(yàn)證 (約束)提示未找到父項(xiàng)關(guān)鍵字的解決辦法
這篇文章主要介紹了ORA-02298: 無(wú)法驗(yàn)證 (約束)提示未找到父項(xiàng)關(guān)鍵字的解決辦法,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09oracle數(shù)據(jù)庫(kù)中查看系統(tǒng)存儲(chǔ)過(guò)程的方法
這篇文章主要介紹了oracle數(shù)據(jù)庫(kù)中查看系統(tǒng)存儲(chǔ)過(guò)程的方法,需要的朋友可以參考下2014-06-06Oracle的PDB數(shù)據(jù)庫(kù)創(chuàng)建DIRECTORY時(shí)遇到ORA-65254問(wèn)題及解決方法
這篇文章主要介紹了Oracle的PDB數(shù)據(jù)庫(kù)創(chuàng)建DIRECTORY時(shí)遇到ORA-65254問(wèn)題,本文給大家分享完美解決方案,需要的朋友可以參考下2023-06-06Linux 創(chuàng)建oracle數(shù)據(jù)庫(kù)的詳細(xì)過(guò)程
這篇文章主要介紹了Linux 創(chuàng)建oracle數(shù)據(jù)庫(kù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03Oracle基礎(chǔ):通過(guò)sqlplus執(zhí)行sql語(yǔ)句后的結(jié)果進(jìn)行判斷
今天小編就為大家分享一篇關(guān)于Oracle基礎(chǔ):通過(guò)sqlplus執(zhí)行sql語(yǔ)句后的結(jié)果進(jìn)行判斷,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12Linux中Oracle啟動(dòng)偵聽(tīng)報(bào)錯(cuò)TNS:permission denied的解決方法
這篇文章主要介紹了Linux中Oracle啟動(dòng)偵聽(tīng)時(shí)報(bào)錯(cuò)TNS:permission denied的解決方法,文中給出了詳細(xì)的解決方法,相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-02-02Oracle實(shí)例啟動(dòng)時(shí)報(bào)錯(cuò):ORA-32004的解決方法
最近在啟動(dòng)實(shí)例時(shí)遇到了一些錯(cuò)誤,通過(guò)查找的相關(guān)的資料終于解決,決定分享出來(lái)給有需要的朋友們,所以下面這篇文章主要給大家介紹了在Oracle實(shí)例啟動(dòng)時(shí)報(bào)錯(cuò):ORA-32004的解決方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-10-10