NULLIF

NULLIFは、2つの式を比較します。値が同じ場合、NULLIFNULLを戻し、異なる場合は最初の式を戻します。

SQL構文

NULLIF(Expression1, Expression2)

パラメータ

NULLIFには、次のパラメータがあります。

パラメータ 説明

Expression1

Expression2と等しいかどうかを調べるためにテストされる式。Expression1には、リテラルNULLを指定できません。

Expression2

Expression1と等しいかどうかを調べるためにテストされる式。

説明

  • 両方のパラメータが数値データ型の場合、Timestenは、数値の優先順位が高い方の引数を判断し、残りの引数をこのデータ型に暗黙的に変換して、このデータ型を戻します。パラメータが数値データ型ではない場合、それらのデータ型ファミリは同じである必要があります。

  • LOBデータ型は、NULLIFでサポートされません。TIMEデータ型は、両方の列がTIMEデータ型の場合のみサポートされます。

  • NULLIFファンクションは、次のCASE式と論理的に同じです。

    CASE WHEN Expression1 = Expression2 THEN NULL ELSE Expression1 END

ノート:

詳細は、「CASE式」を参照してください。

次の例では、入社時から職務が変わった従業員を選択し、job_history表のjob_idemployees表の現在のjob_idが異なる場合は職務が変わったことがわかります。NULLIFを新旧のjob_idエントリに適用すると、エントリが同じ場合はNULLが戻され、異なる場合は職種を変更した従業員が示されます。

Command> SELECT e.last_name, NULLIF(e.job_id, j.job_id) "Old Job ID" 
         FROM employees e, job_history j 
         WHERE e.employee_id = j.employee_id 
         ORDER BY last_name, "Old Job ID";

< De Haan, AD_VP >
< Hartstein, MK_MAN >
< Kaufling, ST_MAN >
< Kochhar, AD_VP >
< Kochhar, AD_VP >
< Raphaely, PU_MAN >
< Taylor, SA_REP >
< Taylor, <NULL> >
< Whalen, AD_ASST >
< Whalen, <NULL> >
10 rows found.