oracle中translate與replace的使用
以下轉自:http://blog.csdn.net/optimist528/article/details/5648619 作者:optimist528
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));
若一個欄位含有字元和數字,比如說想要去掉其中的數字,可以這樣做:
select translate(column_name,'#0123456789','#') from table_name;
也可以這樣做:
select replace(translate(column_name,'0123456789','#'),'#','') from table_name;
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針對的是單個字元。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22207394/viewspace-1166455/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 中 replace函式和translate函式比較Oracle函式
- Oracle 函式 Translate 的用法Oracle函式
- 【Hive】字串替換函式translate和regexp_replaceHive字串函式
- Java中replace與replaceAll區別Java
- SQL中的替換函式replace()使用SQL函式
- MYSQL中replace into的用法MySql
- mySQL中replace的用法MySql
- 字串replace方法的使用字串
- oracle TRANSLATE函式詳解Oracle函式
- MySQL replace into的使用細則MySql
- mysql中replace函式的用法MySql函式
- 【函式】oracle translate() 詳解+例項函式Oracle
- 使用 Flutter 開發 Google Translate 程式FlutterGo
- Oracle Regexp_ReplaceOracle
- oracle REPLACE 函式 介紹Oracle函式
- 【Go】strings.Replace 與 bytes.Replace 調優Go
- javascript中replace的高階運用JavaScript
- 深入理解 JavaScript 中的 replace 方法JavaScript
- xp中的超級命令replace(轉)
- SQLite INSERT OR REPLACE使用SQLite
- PHP字串替換substr_replace與str_replace函式PHP字串函式
- Oracle translate函式和正則的幾個應用Oracle函式
- canvas translate()Canvas
- canvas translateCanvas
- oracle9i replace clob 的一個bugOracle
- SQLite 之 INSERT OR REPLACE使用SQLite
- sql CHARINDEX,REPLACE函式使用SQLIndex函式
- Oracle中rownum與rowid使用上的問題Oracle
- Oracle 正規表示式函式-REGEXP_REPLACE 使用例子Oracle函式
- mysql實現oracle的decode和translate以及管道符拼接MySqlOracle
- CSS3中translate、transform、translation和animation的區別CSSS3ORM
- Oracle replace function to delete sub-stringOracleFunctiondelete
- MySQL中REPLACE INTO和INSERT INTO的區別分析MySql
- Oracle 8i 與 oracle 9 下 RMAN 中 CROSSCHECK 使用的差異OracleROS
- 詳解translate
- translate函式函式
- QApplication::translateAPP
- 11 replace-method標籤使用