【TRIM】TRIM函式“去空格” 功能之外的洞天
如果提到TRIM函式,最簡單的功能就是使用它來去除字串的行首和行尾的空格,這個功能也是大家使用頻率最高的一種。
然而TRIM函式其實是具有刪除“任意指定”字元的功能,不可謂不牛。我們來一次體驗之旅。
1.先看一下TRIM函式的完整語法描述
TRIM([ { { LEADING | TRAILING | BOTH }
[ trim_character ]
| trim_character
}
FROM
]
trim_source
)
以上語法引自於Oracle 10gR2官方文件:
單從這個語法定義上我們就可以看出,小小的TRIM函式蘊含了更多可定製的功能。一一展示,供參考。
2.最簡單的用法開始
不使用任何引數:
sec@ora10g> select trim (' SECOOLER ') "TRIM e.g." from dual;
TRIM e.g
--------
SECOOLER
這也是最常見的一種使用方法,都使用預設的引數,預設情況下TRIM會同時刪除字串前後出現的空格。
3.其實第一種常用的方法等同於下面帶有“BOTH”引數的寫法
sec@ora10g> select trim (both from ' SECOOLER ') "TRIM e.g." from dual;
TRIM e.g
--------
SECOOLER
“BOTH”參數列示同時去除字串前後所指定的內容(預設情況下刪除空格)。
4.既然試用了BOTH引數,我們再看一下“TRAILING”和“LEADING”引數效果
sec@ora10g> select trim (trailing from ' SECOOLER ') "TRIM e.g." from dual;
TRIM e.g.
------------
SECOOLER
sec@ora10g> select trim (leading from ' SECOOLER ') "TRIM e.g." from dual;
TRIM e.g.
------------
SECOOLER
可見,使用“TRAILING”引數可以完成字串尾部空格的刪除功能;而“LEADING”引數正好相反,完成字串頭部空格的刪除功能。
也就是說,使用“TRAILING”和“LEADING”引數可以指定空格的刪除位置。
5.“trim_character”引數粉墨登場
這個引數改變了“刪除空格”的預設行為。
如果想要刪除字串'xxxxSECOOLERxxxx'前後出現的“x”,“trim_character”引數就派上用場了。
sec@ora10g> select trim ('x' from 'xxxxSECOOLERxxxx') "TRIM e.g." from dual;
TRIM e.g
--------
SECOOLER
配合“BOTH”、“TRAILING”和“LEADING”三個引數使用效果如下,與之前演示類似。看結果,不贅述。
sec@ora10g> select trim (both 'x' from 'xxxxSECOOLERxxxx') "TRIM e.g." from dual;
TRIM e.g
--------
SECOOLER
sec@ora10g> select trim (trailing 'x' from 'xxxxSECOOLERxxxx') "TRIM e.g." from dual;
TRIM e.g.
------------
xxxxSECOOLER
sec@ora10g> select trim (leading 'x' from 'xxxxSECOOLERxxxx') "TRIM e.g." from dual;
TRIM e.g.
------------
SECOOLERxxxx
6.需要注意的地方
這裡的“trim_character”引數只允許包含一個字元,不支援多字元。
報錯資訊如下:
sec@ora10g> select trim (leading 'xy' from 'xyxxSECOOLERxyyx') "TRIM e.g." from dual;
select trim (leading 'xy' from 'xyxxSECOOLERxyyx') "TRIM e.g." from dual
*
ERROR at line 1:
ORA-30001: trim set should have only one character
既然TRIM不能滿足我們刪除只剩“SECOOLER”字串的要求,有麼有其他手段呢?of course有。我們使用RTRIM和LTRIM“連環拳”完成這個任務。
1)使用RTRIM
sec@ora10g> select rtrim('xyxxSECOOLERxyyx','xy') "e.g." from dual;
e.g.
------------
xyxxSECOOLER
2)使用LTRIM
sec@ora10g> select ltrim('xyxxSECOOLERxyyx','xy') "e.g." from dual;
e.g.
------------
SECOOLERxyyx
3)聯合使用RTRIM和LTRIM函式達到我們的目的
sec@ora10g> select ltrim(rtrim('xyxxSECOOLERxyyx','xy'),'xy') "e.g." from dual;
e.g.
--------
SECOOLER
使用RTRIM和LTRIM函式時的注意事項:“xy”不表示整個“xy”字串進行匹配,而是發現任意的字元“x”或字元“y”均做刪除操作。
7.小結
在感受Oracle函式帶來便利的同時,建議對每一個常用函式都追本溯源地探究一下,也許在嘗試之後您會發現:哦,原來大家經常用到這些方法只是其真實功能的滄海一粟。
Good luck.
secooler
10.03.10
-- The End --
然而TRIM函式其實是具有刪除“任意指定”字元的功能,不可謂不牛。我們來一次體驗之旅。
1.先看一下TRIM函式的完整語法描述
TRIM([ { { LEADING | TRAILING | BOTH }
[ trim_character ]
| trim_character
}
FROM
]
trim_source
)
以上語法引自於Oracle 10gR2官方文件:
單從這個語法定義上我們就可以看出,小小的TRIM函式蘊含了更多可定製的功能。一一展示,供參考。
2.最簡單的用法開始
不使用任何引數:
sec@ora10g> select trim (' SECOOLER ') "TRIM e.g." from dual;
TRIM e.g
--------
SECOOLER
這也是最常見的一種使用方法,都使用預設的引數,預設情況下TRIM會同時刪除字串前後出現的空格。
3.其實第一種常用的方法等同於下面帶有“BOTH”引數的寫法
sec@ora10g> select trim (both from ' SECOOLER ') "TRIM e.g." from dual;
TRIM e.g
--------
SECOOLER
“BOTH”參數列示同時去除字串前後所指定的內容(預設情況下刪除空格)。
4.既然試用了BOTH引數,我們再看一下“TRAILING”和“LEADING”引數效果
sec@ora10g> select trim (trailing from ' SECOOLER ') "TRIM e.g." from dual;
TRIM e.g.
------------
SECOOLER
sec@ora10g> select trim (leading from ' SECOOLER ') "TRIM e.g." from dual;
TRIM e.g.
------------
SECOOLER
可見,使用“TRAILING”引數可以完成字串尾部空格的刪除功能;而“LEADING”引數正好相反,完成字串頭部空格的刪除功能。
也就是說,使用“TRAILING”和“LEADING”引數可以指定空格的刪除位置。
5.“trim_character”引數粉墨登場
這個引數改變了“刪除空格”的預設行為。
如果想要刪除字串'xxxxSECOOLERxxxx'前後出現的“x”,“trim_character”引數就派上用場了。
sec@ora10g> select trim ('x' from 'xxxxSECOOLERxxxx') "TRIM e.g." from dual;
TRIM e.g
--------
SECOOLER
配合“BOTH”、“TRAILING”和“LEADING”三個引數使用效果如下,與之前演示類似。看結果,不贅述。
sec@ora10g> select trim (both 'x' from 'xxxxSECOOLERxxxx') "TRIM e.g." from dual;
TRIM e.g
--------
SECOOLER
sec@ora10g> select trim (trailing 'x' from 'xxxxSECOOLERxxxx') "TRIM e.g." from dual;
TRIM e.g.
------------
xxxxSECOOLER
sec@ora10g> select trim (leading 'x' from 'xxxxSECOOLERxxxx') "TRIM e.g." from dual;
TRIM e.g.
------------
SECOOLERxxxx
6.需要注意的地方
這裡的“trim_character”引數只允許包含一個字元,不支援多字元。
報錯資訊如下:
sec@ora10g> select trim (leading 'xy' from 'xyxxSECOOLERxyyx') "TRIM e.g." from dual;
select trim (leading 'xy' from 'xyxxSECOOLERxyyx') "TRIM e.g." from dual
*
ERROR at line 1:
ORA-30001: trim set should have only one character
既然TRIM不能滿足我們刪除只剩“SECOOLER”字串的要求,有麼有其他手段呢?of course有。我們使用RTRIM和LTRIM“連環拳”完成這個任務。
1)使用RTRIM
sec@ora10g> select rtrim('xyxxSECOOLERxyyx','xy') "e.g." from dual;
e.g.
------------
xyxxSECOOLER
2)使用LTRIM
sec@ora10g> select ltrim('xyxxSECOOLERxyyx','xy') "e.g." from dual;
e.g.
------------
SECOOLERxyyx
3)聯合使用RTRIM和LTRIM函式達到我們的目的
sec@ora10g> select ltrim(rtrim('xyxxSECOOLERxyyx','xy'),'xy') "e.g." from dual;
e.g.
--------
SECOOLER
使用RTRIM和LTRIM函式時的注意事項:“xy”不表示整個“xy”字串進行匹配,而是發現任意的字元“x”或字元“y”均做刪除操作。
7.小結
在感受Oracle函式帶來便利的同時,建議對每一個常用函式都追本溯源地探究一下,也許在嘗試之後您會發現:哦,原來大家經常用到這些方法只是其真實功能的滄海一粟。
Good luck.
secooler
10.03.10
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-629183/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- trim(用於去半形空格(英文))
- 加入了trim()方法,沒有去掉多餘空格
- JavaScript trim()JavaScript
- String擴充套件trim方法,刪除前後空格套件
- python切片 利用切片操作,實現一個trim()函式,去除字串首尾的空格,注意不要呼叫str的strip()方法Python函式字串
- win10系統如何開啟trim_trim功能怎麼開啟win10Win10
- excel怎麼多餘空格或非列印字元?Excel資料清洗函式Trim去除多餘空格及Clean去除列印字元Excel字元函式
- Mapper.xml中的trimAPPXML
- manjaro開啟sdd trimJAR
- 字串— trim()、trimStart() 和 trimEnd()字串
- MySQL常用的字元函式:length,cancat,substr(substring),instr,trim,upper,lower,lpad,rpad,replaceMySql字元函式
- 669-Trim a Binary Search Tree
- php之 trim ltrim rtrim 小坑PHP
- C語言字串工具箱DIY之剔除字串首尾的空白字元的str_trim函式C語言字串字元函式
- .net打獨立執行環境遇到無法trim遇到的bug
- Win10系統開啟SSD固態硬碟TRIM的方法【圖文】Win10硬碟
- PHP 原始碼探祕 – 為什麼 trim 會導致亂碼PHP原始碼
- 中介軟體:還在使用trim過濾請求引數嗎?
- Linux平臺下SSD的TRIM指令的最佳使用方式(不區別對待NVMe)Linux
- 自定義一個可以接收空格的字串的函式字串函式
- 去抖函式的實現函式
- 無所不能的Embedding5 - skip-thought的兄弟們[Trim/CNN-LSTM/quick-thought]CNNUI
- 理解Underscore中的去抖函式函式
- JS函式節流,去抖JS函式
- 【js】什麼是函式節流與函式去抖JS函式
- 去重函式unique,sort,erase的應用函式
- JS專題之去抖函式JS函式
- Swift中main函式去哪了?SwiftAI函式
- numpy、pandas常用函式功能函式
- 理解Underscore中的uniq(陣列去重)函式陣列函式
- [JS效能優化]函式去抖(debounce)與函式節流(throttle)JS優化函式
- 關於字串的功能函式小結字串函式
- Python巢狀定義函式增強reduce()函式功能Python巢狀函式
- excel最常用的八個函式彙總 excel中各函式的用途功能Excel函式
- qt -- QString類及常用函式功能的使用QT函式
- js陣列去重、扁平化函式JS陣列函式
- 愛情之外,《去月球》還表達了什麼?
- EF.Functions是EF Core提供的函式功能Function函式
- 在python中使用sqlite的自定義函式功能PythonSQLite函式