translate函式

pwz1688發表於2009-04-07
Translate函式與replace函式及其相似,都是用來做字元替換的,但又有所區別,replace是對整個字元替換為指定的字元,但translate是一個字元一個字元對應替換,區別看下面的sql[@more@]

SQL> select translate('abc3243dbc','abc','efg') col from dual;

COL

----------

efg3243dfg

SQL> select replace('abc3243dbc','abc','efg') col from dual;

COL

----------

efg3243dbc

從上面的sql可以看出,replace函式是將整個字元abc替換為efg,translate是將a替換為e,b替換為fc替換為g。下面例舉translate的其它幾種情況

SQL> select translate('abc132fdsf','abcdefg','gfedcba') from dual;

TRANSLATE(

----------

gfe132bdsb

--指定的被替換的字元如果後面沒有指定任何字元,則被替換為空,如下面的defg四個字元都將被替換為空字元。

SQL> select translate('abc132fdsf','abcdefg','gfe') from dual;

TRANSLA

-------

gfe132s

--提取字串中的字母,數字都被過濾,如下:

SQL> select translate('abc132fdsf','0123456789',' ') from dual;

TRANSLA

-------

abcfdsf

或按以下方式

SQL> select translate('abc132fdsf','#0123456789','#') from dual;

TRANSLA

-------

abcfdsf

--提取字串中的數字,字母都被過濾,如下:

SQL> select translate('abc132fdsf','abcdefghigklmnopqrstuvwxyz',' ') from dual;

TRAN

----

132

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21251711/viewspace-1020091/,如需轉載,請註明出處,否則將追究法律責任。

相關文章