標籤:oracle 替換函數 replace translate
一、replace函數
replace函數的作用是將源目標中指定字串替換為相應字元,舉例如下:
(1)將“jisuanji”字串中的ji替換為1;
SQL> select replace(‘jisuanji‘,‘ji‘,1) from dual;
REPLACE(‘JISUANJI‘,‘JI‘,1)
--------------------------
1suan1
說明:首先在‘jisuanji’字串中尋找‘ji’這個字串,如果尋找到,則用1替換,否則保持 原樣輸出。
(2)將“jisuanji”字串中的js替換為1;
SQL> select replace(‘jisuanji‘,‘js‘,1) from dual;
REPLACE(‘JISUANJI‘,‘JS‘,1)
--------------------------
jisuanji
說明:‘jisuanji’這個字串中沒有找到‘js’這個連續的字元,所以保持原樣輸出;
二、translate函數
(3)translate函數與replace函數的區別主要是,translate將指定字串拆分成字元進行匹配並且每個字元與替換字元一一對應,舉例如下:
將jisuanji”字串中的ji替換為1;
SQL> select translate(‘jisuanji‘,‘ji‘,1) from dual;
TRANSLATE(‘JISUANJI‘,‘JI‘,1)
----------------------------
1suan1
說明:上面的例子中,sql將‘ji’拆分成‘j’‘i’這兩個字元,然後j與1進行匹配,但是i沒有匹配到替換字元,所以為空白,效果就是抹掉,最終得到的效果就是1suan1,這與replace同樣的例子效果一樣,但是原理不一樣,這點需要注意。
SQL> select translate(‘jisuanji‘,‘js‘,12) from dual;
TRANSLATE(‘JISUANJI‘,‘JS‘,12)
-----------------------------
1i2uan1i
上面這裡例子揭示了translate函數的原理。
總結:通過對replace和translate函數對比分析並結合個人使用經驗,認為translate函數操作靈活,推薦使用translate函數代替replace函數。
Oracle替換函數之replace和translate