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

Oracle ISNULL()と同等

    ほとんどの主要なDBMSは、null値を別の値に置き換えるための関数を提供します。

    ただし、関数の名前はDBMS間で異なる傾向があります。たとえば、SQLServerにはISNULL()があります 関数、他(MySQL、MariaDB、SQLiteなど)にはIFNULL()があります 同じことをするための関数。

    ただし、混乱させるために、MySQLとMariaDBにはそれぞれISNULL()があります。 同じ名前のSQLServerの関数とは異なる動作をする関数(MySQLとMariaDBの実装は、単一の引数のみを受け入れ、1を返します。 nullの場合 および0 そうでない場合)。

    とにかく、Oracle Databaseの場合、NVL()を使用できます。 null値を別の値に置き換える関数。

    実際、OracleDatabaseにはNVL2()もあります。 最初の引数がnullでない場合に使用する別の値を提供できるようにする関数 。

    値がnullであるかどうかを単にテストしたい場合 かどうかにかかわらず、IS NULLを使用できます 条件(またはIS NOT NULL 反対のテストの場合)。

    NVL() 機能

    これは、NVL()がどのように機能するかを示す例です。 機能は動作します:

    SELECT NVL(null, 'Run')
    FROM DUAL;

    結果:

    Run

    その場合、最初の引数はnullでした そのため、2番目の引数が返されました。

    最初の引数がnullでない場合は次のようになります :

    SELECT NVL('Walk', 'Run')
    FROM DUAL;

    結果:

    Walk

    最初の引数が返されます。

    NVL2() 機能

    前述のように、OracleDatabaseはNVL2()も提供します。 働き。この関数を使用すると、最初の引数がnullでない場合に使用する別の値を提供できます。 。

    仕組みの例を次に示します。

    SELECT NVL2(null, 2, 3)
    FROM DUAL;

    結果:

    3

    最初の引数はnullでした そのため、3番目の引数が返されました。

    最初の引数がnullでない場合は次のようになります :

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

    結果:

    2

    2番目の引数が返されます。

    IS NULL およびIS NOT NULL 条件

    値がnullであるかどうかを確認したいだけの場合 、IS NULLを使用できます 比較条件。または、IS NOT NULLを使用することもできます nullではないかどうかを確認します 。

    次の表があるとします。

    SELECT * FROM Autoparts
    WHERE Price IS NULL;

    結果:

    ID OE# 価格 モデル
    2 62150B3278 カムリ
    1 62150A3278 168 ハイラックス

    この場合、PRICE 列には、最初の行にはnull値が含まれていますが、2番目の行には含まれていません。

    IS NULLの使用例を次に示します。 そのテーブルに対して:

    SELECT * FROM Autoparts
    WHERE Price IS NULL;

    結果:

    ID OE# 価格 モデル
    2 62150B3278 カムリ

    価格がnullの行のみが返されます。

    IS NOT NULLを使用すると次のようになります :

    SELECT * FROM Autoparts
    WHERE Price IS NOT NULL;

    結果:

    ID OE# 価格 モデル
    1 62150A3278 168 ハイラックス

    もう一方の行が返されます。


    1. 接続文字列からデフォルトのスキーマを設定できますか?

    2. SQL INTERSECT

    3. LOAD DATA INFILEエラーコード:13

    4. Galera Cluster Cloudオファリングの比較:パート2 Google Cloud Platform(GCP)