oracle 中translate的基本用法

2021-08-07 08:26:49 字數 1309 閱讀 2657

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')

結果:1 ,也就是where中的等式成立;

以上就是我常用的一些用法;僅供參考。

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臨時表是注意一...