この記事ではOracleのdecode関数の使用例を中心に紹介していますので、ぜひ学習して使いこなしてください。
decode のいくつかの使用法
1: decode を使用して文字列が同じかどうかを判断します
DECODE (value, if1, then1, if2, then2, if3, then3,..., else)
意味
IF 条件=値 1 THEN
RETURN(値 1)
ELSIF 条件=値 2 THEN
RETURN(値 2)
...
ELSIF 条件=値 n THEN
RETURN(値 3 )
ELSE
RETURN(デフォルト)
END IF
sql test
select empno,decode(empno,7369,'smith',7499,'allen',7521,'ward',7566,'jones','unknow') as name from emp where rownum<=10
出力結果
7369 smith 7499 allen 7521 ward 7566 jones 7654 unknow 7698 unknow 7782 unknow 7788 unknow 7839 unknow 7844 unknow
2: デコードを使用してサイズを比較します
select decode(sign(var1- Dual
select decode(sign(100-90),-1,100,90) from dual
出力結果
90
select decode(sign(100-90),1,100,90) from dual
りー
100-90=10>0は1を返し、判定結果は1、最初の変数100を返し、最終的な出力結果は100になります
3: デコード関数を使用して
sql test
100
出力結果は次のとおりです
SELECT ename,sal, DECODE(SIGN(sal - 5000), 1, 'high sal', 0, 'high sal', - 1, DECODE(SIGN(sal - 3000), 1, 'mid sal', 0, 'mid sal', - 1, DECODE(SIGN(sal - 1000), 1, 'low sal', 0, 'low sal', - 1, 'low sal'))) FROM emp
5: decode 関数を使用して文字列を検索します式
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n, default)
decode 関数は、式と検索語が一致する場合、結果を返します。一致しない場合はデフォルト値を返し、デフォルト値が定義されていない場合は null 値を返します。SQLテスト
SMITH 800 low sal ALLEN 1600 low sal WARD 1250 low sal JONES 2975 low sal MARTIN 1250 low sal BLAKE 2850 low sal CLARK 2450 low sal SCOTT 3000 mid sal KING 5000 high sal TURNER 1500 low sal ADAMS 1100 low sal JAMES 950 low sal FORD 3000 mid sal MILLER 1300 low sal
結果を出力
SELECT SUM(DECODE(ENAME,'SMITH',SAL,0)) SMITH, SUM(DECODE(ENAME,'ALLEN',SAL,0)) ALLEN, SUM(DECODE(ENAME,'WARD',SAL,0)) WARD, SUM(DECODE(ENAME,'JONES',SAL,0)) JONES, SUM(DECODE(ENAME,'MARTIN',SAL,0)) MARTIN FROM EMP
実際の開発ではデコード関数がとても便利
Lpad関数と組み合わせて主キーの値に自動で1を加える方法先頭に 0 を追加します
例:
select decode (dir,1,0,1) from a1_intervaldirの値は1から0に変化し、0の場合は1に変化します
例えば、特定のクラスの男の子と女の子の数は?
通常、次のように書きます:
SMITH ALLEN WARD JONES MARTIN 800 1600 1250 2975 1250
もう学びましたか?急いで試してみてください。
Oracleの共通関数Truncの詳細説明
以上がOracleのデコード機能の使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。