首頁  >  文章  >  資料庫  >  oracle怎麼去掉空格

oracle怎麼去掉空格

藏色散人
藏色散人原創
2021-12-15 11:25:0946782瀏覽

oracle去掉空格的方法:1.使用Trim函數去除字串首尾空格;2、使用rtrim和ltrim去除左右空格;3、使用replace函數去除字串裡的全部空格。

oracle怎麼去掉空格

本文操作環境:Windows7系統、Dell G3電腦、Oracle 11g版。

oracle怎麼去掉空格?

oracle中對字串進行去除空格的方法:

#首先便是這Trim函數。 Trim 函數具有刪除任意指定字元的功能,而去除字串首尾空格則是trim函數被使用頻率最高的一種。

語法Trim ( string ) 

參數string:string類型,指定要刪除首部和尾部空格的字串傳回值String。

函數執行成功時回傳刪除了string字串首部和尾部空格的字串,發生錯誤時傳回空字串("")。 

如果參數值為null時,會拋出空指標例外。

在oracle中,trim使用的形式多為人類rtrim()與ltrim()兩種,分別為去除字串右邊空格與去除字串左邊空格。

 當然trim的功能不只如此,以下進行細緻的介紹,這裡我多以去除字串空格為例。

我們看trim函數的語法描述:

trim( [ {  {leading|trailing|both}  [trim_character]|trim_character}  from] trim_source

1)、不使用任何參數

SQL> select trim('   11   ') aa from dual;

11

這是最常見的一種使用方法,都使用預設的參數,預設情況下TRIM會同時刪除字串前後出現的空格。

2)、使用both參數,效果等同於方法一不使用任何參數

SQL> select trim(both from '   11   ') aa from dual;

11

「BOTH」參數表示同時移除字串前後所指定的內容(預設刪除空格)。

3)、使用leading與trailing參數

SQL> select trim(leading from '   11  ') aa from dual;

11

SQL> select trim(trailing from '   11  ') aa from dual;

11

從結果中得分隔符號'-',可以發現使用leading參數可以去除字串右端的空格,而trailing參數則可以去除字串左端的空格。正如oracle提供的rtrim()與ltrim()。

4)、使用trim_character參數

trim_character參數改變了「刪除空格」的預設行為。如果想要刪除字串'xxxxWORLDxxxx'前後出現的“x”,“trim_character”參數就派上用場了。

SQL> select trim('x' from 'xxxxWORLDxxxx') aaaaa from dual;

WORLD

trim_character配合「both」、「trailing」和「leading」三個參數使用效果如下,與先前示範類似。看結果,不贅述。

SQL> select trim('x' from 'xxxxWORLDxxxx') aaaaa from dual;

WORLD

SQL> select trim(both 'x' from 'xxxxWORLDxxxx') aaaaa from dual;

WORLD

SQL> select trim(trailing 'x' from 'xxxxWORLDxxxx') aaaaa from dual;

xxxxWORLD

SQL> select trim(leading 'x' from 'xxxxWORLDxxxx') aaaaa from dual;

##WORLDxxxx

##       必須注意的一點是這裡的「trim_character」參數只允許包含一個字符,且不支援多重字元。 trim不能滿足我們去除多字符要求,但是我們可以使用rtrim和ltrim來處理。

1)使用rtrim

SQL> select rtrim('ORxxxxWORLDxxxxOR','OR') aaaaa from dual;

ORxxxxWORLDxxxx


# #2)使用ltrim

SQL> select ltrim('ORxxxxWORLDxxxxOR','OR') aaaaa from dual;
xxxxWORLDxxxxOR

3)聯合使用RTRIM和LTRIM函數達到我們的目的

#
SQL> select rtrim(ltrim('ORxxxxWORLDxxxxOR','OR'),'OR') aaaaa from dual;
################ ####xxxxWORLDxxxx##########################################使用rtrim和ltrim函數時的注意事項:「OR」不表示整個「OR」字串進行匹配,而是發現任意的字元「O」或字元「R」均做刪除操作。 ########################       對trim函數的應用介紹到,以下介紹replace函數,個人覺得replace函數去空格時較好用。 replace 函數以第三個表達式取代第一個字串表達式中出現的所有第二個給定字串表達式。來看下replace函數的語法描述:replace('string_replace1','string_replace2','string_replace3')  ######'string_replace1' 待搜尋的字串表達式,string_replace1 可以是字元資料或二進位資料。 ######'string_replace2' 待尋找的字串表達式,string_replace2 可以是字元資料或二進位資料。 ######'string_replace3' 取代用的字串表達式,string_replace3 可以是字元資料或二進位資料。 ###

返回类型,如果 string_replace(1、2 或 3)是支持的字符数据类型之一,则返回字符数据;如果 string_replace(1、2 或 3)是支持的 binary 数据类型之一,则返回二进制数据。

 这里我们依然以去空格为例。

SQL> select replace('   aa  kk  ',' ','') abcd from dual;

aakk

       与使用trim函数的结果进行对比,我们可以发现,使用replace函数不仅可以去除字符串两端的空格,也可去除字符串内部的空格。

       当然,如果只是要去除字符串两端的空格,使用trim函数效率会更高。

相关推荐:oracle数据库学习教程

以上是oracle怎麼去掉空格的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn