1.translate 與replace類似是替換函式,但translate是一次替換多個單個的字元。
2.基本用法,字元對應替換。
例子:select translate('1234567','123' ,'abc') from dual ;--1替換為a,2替換為b,3替換為c
結果:abc4567 。
3.如果 沒有對應字元則替換為null;
select translate('1234567','123' ,'ab') from dual;--3替換為null;
結果:ab4567.
4.如果對應字元過多,不影響
select translate('1234567','123' ,'abccd') from dual;
結果:abc4567
5.如果替換字元整個為空字元 ,則直接返回null
select translate('1234567','123' ,'') from dual;
結果:null;
6.如果想篩掉對應字元,應傳入乙個不相關字元,同時替換字元也加乙個相同字元;
select translate('1234567','&123' ,'&') from dual;
結果:4567;
7,如果相同字元對應多個字元,按第乙個;
select translate('12334567','1233' ,『abcd') from dual;
結果:abcc4567;
8,如果想保留某些特定字元篩選掉其他的,比如篩掉漢字保留數字
先把數字篩選掉,
select translate('你師看了3三樓2的6開8發','#0123456789' ,'#') from dual
再用篩選出的漢字去篩選原來的語句留下數字,
select translate('你師看了3三樓2的6開8發','#'||translate('你師看了3三樓2的6開8發','#0123456789' ,'#'),'#') from dual;
結果:3268;
9,還有其他靈活用法,比如我可以判斷兩個字串如果:字串都是數字字元,然後數字字元的順序不同,且每個字元只出現一次,
我可以判斷他們包含的數字是不是完全一致;
比如比較123 和132;
select 1 from dual where
translate('0123456789','123' ,'aaaaaaaaaa') =translate('0123456789','132' ,'aaaaaaaaaa')
oracle中累計求和 oracle累計求和
poj2001 shortest prefixes trie樹應用 沉迷wow又頹了兩天orz,暴雪爸爸要在國服出月卡了.這是要我好好學習嗎?趕緊來刷題了.oj 題目大意是求所有字串裡每乙個字元 硬體相關 jtag介面 jtag joint test action group,聯合測試行動小組 是一...
oracle中累計求和 oracle累計求和
oracle累計求和 將當前行某列的值與前面所有行的此列值相加,即累計求和 方法一 with t as select 1 val from dual union all select 3 from dual union all select 5 from dual union all select ...
Oracle中臨時表
最近考慮到我們的資料庫端寫儲存過程關於臨時表使用的情況,由於我們 現在還不清楚資料庫端到底是怎麼處理的,是否和sql server的處理方式相 同,是否會存在隱患等等一些問題,為了避免將來不必要的麻煩我做了深 入的研究和檢視了一些權威的資料,現在和大家共享,希望大家在處理 oracle臨時表是注意一...