-NVL関数はNULL値を他の値に替える時に使用、全てのデータタイプに適用可能
--マネージャーがない値を0に替えて出力
SQL> SELECT empno, NVL(mgr, 0) mgr
2 FROM emp
3 WHERE deptno = 10;
EMPNO MGR
---------- ----------
7782 7839
7839 0
7934 7782
■NVL2
-NVL2はNVLとDECODEの概念を合わせた関数
-NVL2(expr, expr1, expr2)
-expr値がNULLじゃない場合、expr1を返し、NULLの場合はexpr2を返す
--マネージャーがいる場合は1を無ければ2を出力する例
SQL> SELECT empno, NVL2(mgr, 1, 0) mgr
2 FROM emp
3 WHERE deptno = 10;
EMPNO MGR
---------- ----------
7782 1
7839 0
7934 1
■NULLIF
-NULLIF(expr1, expr2)
-expr1とexpr2が同じならNULLを返し、違うならexpr1を返す
-CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END
■COALESCE
-COALESCE(expr1, expr2, expr3, .....)
-expr1がNULLじゃないならexpr1を返し、NULLならCOALESCE(expr2, expr3, .....)値を返す
-NVL関数と似ている
SQL> SELECT COALESCE(comm, 1) ,comm FROM emp;
COALESCE(COMM,1) COMM
---------------- ----------
1
300 300
1
1400 1400
1
1
1
1
0 0
1
1
1
1
1
1
15行が選択されました。
0 件のコメント:
コメントを投稿