1.translate
語法:translate(char, from, to)
用法:返回將出現在from中的每個字元替換為to中的相應字元以後的字串。
若from比to字串長,那麼在from中比to中多出的字元將會被刪除。
三個引數中有乙個是空,返回值也將是空值。
舉例:sql> select translate('abcdefga','abc','wo') 返回值 from dual;
返回值wodefgw
分析:該語句要將'abcdefga'中的'abc'轉換為'wo',
由於'abc'中'a'對應'wo'中的'w',
故將'abcdefga'中的'a'全部轉換成'w';
而'abc'中'b'對應'wo'中的'o',
故將'abcdefga'中的'b'全部轉換成'o';
'abc'中的'c'在'wo'中沒有與之對應的字元,
故將'abcdefga'中的'c'全部刪除;
簡單說來,就是將from中的字元轉換為to中與之位置對應的字元,
若to中找不到與之對應的字元,返回值中的該字元將會被刪除。
在實際的業務中,可以用來刪除一些異常資料,
比如表a中的乙個欄位t_no表示**號碼,
而**號碼本身應該是乙個由數字組成的字串,
為了刪除那些含有非數字的異常資料,
就用到了translate函式:
sql> delete from a,
where length(translate(trim(a.t_no),
'0123456789' || a.t_no,
'0123456789')) <> length(trim(a.t_no));
2.replace
語法:replace(char, search_string,replacement_string)
用法:將char中的字串search_string全部轉換為字串replacement_string。
舉例:sql> select replace('fgsgswsgs', 'fk' ,'j') 返回值 from dual;
返回值fgsgswsgs
sql> select replace('fgsgswsgs', 'sg' ,'eeerrrttt') 返回值 from dual;
返回值fgeeerrrtttsweeerrrttts
分析:第乙個例子中由於'fgsgswsgs'中沒有與'fk'匹配的字串,
故返回值仍然是'fgsgswsgs';
第二個例子中將'fgsgswsgs'中的字串'sg'全部轉換為'eeerrrttt'。
總結:綜上所述,replace與translate都是替代函式,
只不過replace針對的是字串,而translate針對的是單個字元。
sql中translate與replace 的區別
sql中translate與replace 的區別 1.translate 語法 translate char,from,to 用法 返回將出現在from中的每個字元替換為to中的相應字元以後的字串。若from比to字串長,那麼在from中比to中多出的字元將會被刪除。三個引數中有乙個是空,返回值也...
translate 與 相對 絕對定位
垂直水平居中是日常前端開發當中乙個常見的需求,在支援 css3 屬性的現代瀏覽器當中,有乙個利用 css3 屬性的垂直水平居中方法 position absolute translate translate translate translate 例子傳送門 請用現代瀏覽器開啟 從上面的例子看到,無...
oracle 中translate的基本用法
1.translate 與replace類似是替換函式,但translate是一次替換多個單個的字元。2.基本用法,字元對應替換。例子 select translate 1234567 123 abc from dual 1替換為a,2替換為b,3替換為c 結果 abc4567 3.如果 沒有對應字...