Oracle---replace的基本用法


參考文檔:https://blog.csdn.net/bingguang1993/article/details/80592579/

基本語法

格式:

REPLACE ( string_expression , string_pattern , string_replacement )

參數說明:

  • string_expression 要搜索的字符串表達式。string_expression 可以是字符或二進制數據類型。
  • string_pattern 是要查找的子字符串。string_pattern 可以是字符或二進制數據類型,但不能是空字符串 ('')
  • string_replacement 替換字符串。string_replacement 可以是字符或二進制數據類型。

簡單來說:使用REPLACE(String,from_str,to_str) 可以將String中所有出現的from_str替換為to_str。

驗證測試

創建表,並插入測試數據

create table test4(
  address varchar2(20)
);
insert into test4 values ('黃花路X號X房'),(''),('廣州塔X號'),(null),('上XXX海1hao');

查詢替換

select replace(address,'X','Y') from test4

上面會將address列中所有的X 替換成Y,同時也會把空字符串替換成NULL

如果需要將NULL值替換成其他的話,如果是oracle數據庫的話,可以使用NVL函數。只有在null值才會被替換,而空字符串不會

select nvl(address,'meiyou') from test4

當省略了replace的第三個參數,則會將匹配到所有的字符串替換成空字符串、並且如果原本數據是空字符串的話會轉成NULL

select replace(address,'X') from test4

如果想要將空字符串替換成其他字符串的話,我們可以利用replace和nvl函數。

select nvl(replace(address,''),'無') from test4

更新替換

update test4 set address= replace(address,'X','Y')

上面會把address中匹配到所有的X替換成Y、空字符串替換成NULL

總結

  • replace可以替換所有匹配到的字符串,但是無法替換像NULL、空字符串的問題
  • 空字符串替換成其他字符串的話,可以利用replace函數將空字符串轉換為NULL,然后利用nvl進行null值的判斷,然后如果為null值則轉成其他的數據


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM