-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 件のコメント:
コメントを投稿