1. 程式人生 > >SQL函式translate與replace的區別

SQL函式translate與replace的區別

開發十年,就只剩下這套架構體系了! >>>   

SQL函式replace返回一個被所給的字串匹配替換後的新的字串.

語法:

REPLACE(string, match_string, replace_string)

引數:

  • String:原始字串,也就是需要被替換的目標字串
  • match_string:在目標字串中需要被替換的內容
  • replace_string:需要被替換成的結果字串

例子:

SQL> SELECT REPLACE('Opal Kole','K','Smo') "REPLACE" FROM DUAL;

REPLACE
-----------
Opal Smoole

SQL函式translate返回一個被所給的字串逐個匹配替換後的新的字串

語法:

TRANSLATE(string, match_char, replace_char) 

引數:

  • String:原始字串,也就是需要被替換的目標字串
  • match_char:在目標字串中需要被替換的內容
  • replace_char:在目標字串中逐個對match_char中內容進行匹配並替換按match_char和replace_char一一對應的順序進替換成想要的內容

例子:

SQL> SELECT REPLACE('Opal Kole','K','D') "TRANSLATE" FROM DUAL;

TRANSLATE
---------
Opal Dole

其他特點:

translate中文字元也適用的很好

但要注意的是,如果String,match_char,replace_char有一方為空,則結果也為空

replace則不然

replace中replace_string如果為空還可以簡寫,translate要這麼寫就會報錯

所以當目標字串中有多個不同的字元需要被替換時,使用translate