sql >> データベース >  >> RDS >> Oracle

OracleのNULLIF()関数

    Oracle Databaseでは、NULLIF() 関数は2つの式を比較し、nullを返します 両方の式が等しい場合。それらが等しくない場合、関数は最初の式を返します。

    構文

    構文は次のようになります:

    NULLIF(expr1, expr2)

    デモンストレーションの例を次に示します。

    SELECT NULLIF(5, 7)
    FROM DUAL;

    結果:

    5

    この場合、引数は等しくなかったため、関数は最初の引数を返しました。

    両方の引数が等しい場合は、次のようになります。

    SET NULL 'null';
    SELECT NULLIF(7, 7)
    FROM DUAL;

    結果:

    null

    NULLIF()であることがわかります nullを返します 両方の引数が等しい場合

    最初の行についてSET NULL 'null'; 、SQLclセッションがnullを返すように追加しました 結果がnullの場合は常に。

    デフォルトでは、SQLclおよびSQL * Plusは、nullの場合は常に空白を返します。 SQL SELECTの結果として発生します 声明。

    ただし、SET NULLは使用できます 返される別の文字列を指定します。ここでは、文字列nullを指定しました 返却する必要があります。

    CASEとの比較

    NULLIF() 関数は、次のCASEと同等です。 式:

    CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END

    無効な引数カウント

    引数を渡さずに関数を呼び出すと、エラーが発生します:

    SELECT NULLIF()
    FROM DUAL;

    結果:

    SQL Error: ORA-00909: invalid number of arguments
    00909. 00000 -  "invalid number of arguments"

    また、あまりにも多くの引数を渡すとエラーが発生します:

    SELECT NULLIF(1, 2, 3)
    FROM DUAL;

    結果:

    SQL Error: ORA-00909: invalid number of arguments
    00909. 00000 -  "invalid number of arguments"

    1. SQL Server DataTypesと同等のC#

    2. PHP接続に失敗しました:SQLSTATE[HY000][2002]接続が拒否されました

    3. データベースサーバーのハードウェアトレンド

    4. 正確さと制約