去除換行
孟村ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
update?zhzl_address?t?set?t.add_administration_num=replace(t.add_administration_num,chr(10),'');
去掉回車
update?zhzl_address?t?set?t.add_administration_num=replace(t.add_administration_num,chr(13),'');
去掉空格
update?zhzl_address?t?set?t.add_administration_num=trim(t.add_administration_num);
selecttrim('aaa')fromdual;
selectLtrim('aaa')fromdual;
selectRtrim('aaa')fromdual;
selectRtrim(Ltrim('aaa'))fromdual。
Oracle Database是甲骨文公司的一款關(guān)系數(shù)據(jù)庫管理系統(tǒng)。到目前仍在數(shù)據(jù)庫市場上占有主要份額。作為一個通用的數(shù)據(jù)庫系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個關(guān)系數(shù)據(jù)庫,它是一個完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫它實現(xiàn)了分布式處理功能。但它的所有知識,只要在一種機型上學(xué)習(xí)了ORACLE知識,便能在各種類型的機器上使用。
系統(tǒng)具有:可用性強、可擴展性強、數(shù)據(jù)安全性強、穩(wěn)定性強等優(yōu)點。
首先便是這Trim函數(shù)。Trim 函數(shù)具有刪除任意指定字符的功能,而去除字符串首尾空格則是trim函數(shù)被使用頻率最高的一種。語法Trim ( string ) ,參數(shù)string:string類型,指定要刪除首部和尾部空格的字符串返回值String。函數(shù)執(zhí)行成功時返回刪除了string字符串首部和尾部空格的字符串,發(fā)生錯誤時返回空字符串("")。 如果參數(shù)值為null時,會拋出空指針異常。在oracle中,trim使用的形式多為人rtrim()與ltrim()兩種,分別為去除字符串右邊空格與去除字符串左邊空格。
當(dāng)然trim的功能不止如此,下面進行細致的介紹,這里我多以去除字符串空格為例。
我們看下trim函數(shù)的語法描述:trim( [ { {leading|trailing|both} [trim_character]|trim_character} from] trim_source
1)、不使用任何參數(shù)
SQL select trim(' 11 ') aa from dual;
AA
--
11
這是最常見的一種使用方法,都使用默認的參數(shù),默認情況下TRIM會同時刪除字符串前后出現(xiàn)的空格。
2)、使用both參數(shù),效果等同于方法一不使用任何參數(shù)
SQL select trim(both from ' 11 ') aa from dual;
AA
--
11
“BOTH”參數(shù)表示同時去除字符串前后所指定的內(nèi)容(默認情況下刪除空格)。
3)、使用leading與trailing參數(shù)
SQL select trim(leading from ' 11 ') aa from dual;
AA
----
11
SQL select trim(trailing from ' 11 ') aa from dual;
AA
-----
11
從結(jié)果中得分隔符'-',可以發(fā)現(xiàn)使用leading參數(shù)可以去除字符串右端的空格,而trailing參數(shù)則可以去除字符串左端的空格。正如oracle提供的rtrim()與ltrim()。
4)、使用trim_character參數(shù)
trim_character參數(shù)改變了“刪除空格”的默認行為。如果想要刪除字符串'xxxxWORLDxxxx'前后出現(xiàn)的“x”,“trim_character”參數(shù)就派上用場了。
SQL select trim('x' from 'xxxxWORLDxxxx') aaaaa from dual;
AAAAA
-----
WORLD
trim_character配合“both”、“trailing”和“l(fā)eading”三個參數(shù)使用效果如下,與之前演示類似??唇Y(jié)果,不贅述。
SQL select trim('x' from 'xxxxWORLDxxxx') aaaaa from dual;
AAAAA
-----
WORLD
SQL select trim(both 'x' from 'xxxxWORLDxxxx') aaaaa from dual;
AAAAA
-----
WORLD
SQL select trim(trailing 'x' from 'xxxxWORLDxxxx') aaaaa from dual;
AAAAA
---------
xxxxWORLD
SQL select trim(leading 'x' from 'xxxxWORLDxxxx') aaaaa from dual;
AAAAA
---------
WORLDxxxx
必須注意的一點是這里的“trim_character”參數(shù)只允許包含一個字符,不支持多字符。trim不能滿足我們?nèi)コ嘧址?,但是我們可以使用rtrim和ltrim來處理。
1)使用rtrim
SQL select rtrim('ORxxxxWORLDxxxxOR','OR') aaaaa from dual;
AAAAA
---------------
ORxxxxWORLDxxxx
2)使用ltrim
SQL select ltrim('ORxxxxWORLDxxxxOR','OR') aaaaa from dual;
AAAAA
---------------
xxxxWORLDxxxxOR
3)聯(lián)合使用RTRIM和LTRIM函數(shù)達到我們的目的
SQL select rtrim(ltrim('ORxxxxWORLDxxxxOR','OR'),'OR') aaaaa from dual;
AAAAA
-------------
xxxxWORLDxxxx
使用rtrim和ltrim函數(shù)時的注意事項:“OR”不表示整個“OR”字符串進行匹配,而是發(fā)現(xiàn)任意的字符“O”或字符“R”均做刪除操作。
對于trim函數(shù)的應(yīng)用就介紹到,下面介紹一下replace函數(shù),個人覺得replace函數(shù)在去空格時更好用。replace 函數(shù)用第三個表達式替換第一個字符串表達式中出現(xiàn)的所有第二個給定字符串表達式。來看下replace函數(shù)的語法描述:replace('string_replace1','string_replace2','string_replace3')
'string_replace1' 待搜索的字符串表達式,string_replace1 可以是字符數(shù)據(jù)或二進制數(shù)據(jù)。
'string_replace2' 待查找的字符串表達式,string_replace2 可以是字符數(shù)據(jù)或二進制數(shù)據(jù)。
'string_replace3' 替換用的字符串表達式,string_replace3 可以是字符數(shù)據(jù)或二進制數(shù)據(jù)。
返回類型,如果 string_replace(1、2 或 3)是支持的字符數(shù)據(jù)類型之一,則返回字符數(shù)據(jù);如果 string_replace(1、2 或 3)是支持的 binary 數(shù)據(jù)類型之一,則返回二進制數(shù)據(jù)。
這里我們依然以去空格為例。
SQL select replace(' aa kk ',' ','') abcd from dual;
ABCD
----
aakk
與使用trim函數(shù)的結(jié)果進行對比,我們可以發(fā)現(xiàn),使用replace函數(shù)不僅可以去除字符串兩端的空格,也可去除字符串內(nèi)部的空格。
當(dāng)然,如果只是要去除字符串兩端的空格,使用trim函數(shù)效率會更高。
1.首先是去除空格在進行比較(比如,把姓名中的所有空格去除):
Update table_name set xm=replace(xm , ' ') ;
如果要查找哪些記錄含有' ',可用相關(guān)的語句查找。
然后可進行比較。
2.但是我們可能會發(fā)現(xiàn),有些姓名中間或末尾還有類似空格的字符沒被去掉,但它們顯然已經(jīng)不是一般的空格了,那么懷疑是Tab健作怪。于是參照網(wǎng)上說的去掉TAB鍵的辦法來處理,用chr(9)來替代空格鍵(TAB鍵的ASCII值為9)。先取一條帶有類空格字符的記錄來做實驗:
SELECT replace(xm, chr(9) ) from table_name where bh=’xxx’;
用這個辦法會去掉一些真正的Tab鍵空格,然后采取批量更新的辦法。
3.但我遇到的情況沒有這么幸運,沒能去掉類空格鍵。怎么辦呢?我決定嘗試先取得這個類空格鍵的ASCII碼值,然后再用chr(ASCII碼值)的方法來處理。
①.取得含類空格鍵整個字符串的長度 length(),從而確定出類空格鍵在字符串中的起始位置、類空格鍵的長度。
②.求出類空格鍵的ASCII碼值:ascii(substr(xm,n,m)); n為類空格鍵的起始位置;m為長度。
③.SELECT replace(xm, chr(第②步求得的ASCII碼值) ) from table_name where bh=’xxx’;