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

MySQLCOALESCEおよびNULLIF関数

    この投稿では、MySQLCOALESCEとNULLIF関数について説明します。 MySQLCOALESCEの例とNULLIFMySQL関数の例も示します

    MySQLCOALESCE関数

    MySQLのCOALESCEは、値のリストから最初にnull以外の値を選択するための非常に便利な関数です

    構文

    COALESCE(val1、val2、val3、…valn)

    上記の構文は、次のIF-THEN-ELSEステートメントと同等です

    IF val1 is not NULL THEN val1
    ELSIF val2 is not NULL THEN val2
    ELSIF val3 is not NULL THEN val3
    ELSE NULL;
    END IF

    これもケース式と同等です

    Case
    when val1 is not NULL then val1
    when val2 is not NULL then val2
    when val3 is not NULL then val3
    else NULL
    end

    使用法

    以下はCOALESCE関数の例です

    mysql> select COALESCE(1,2,3,null);
    +----------------------+
    | COALESCE(1,2,3,null) |
    +----------------------+
    | 1 |
    +----------------------+
    1 row in set (0.00 sec)
    mysql> select COALESCE(null,null,'a','b',null);
    +----------------------------------+
    | COALESCE(null,null,'a','b',null) |
    +----------------------------------+
    | a |
    +----------------------------------+
    1 row in set (0.00 sec)

    mysql> select COALESCE(null、null、null);
    + ————————– +
    | COALESCE(null、null、null)|
    + ————————– +
    | NULL |
    + ————————– +
    1行セット(0.00秒)

    従業員mobile_number、office_number、およびhome_numberを含むテーブルEMPがあるとします。これらのフィールドのいずれにもnull値が含まれている可能性があります。ここで、null値の場合、優先度mobile_number>office_number>home_numberで電話を選択します。したがって、以下の合体ステートメントを使用できます

    select emp_name, coalesce(mobile_number,office_number,home_number) contact_no from emp;

    MySQLNULLIF関数

    MySQLのNullif関数は、2つの値を比較し、同じ場合はnullを、同じでない場合はval1を指定するのに非常に便利な関数です。

    NULLIF(val1、val2)

    使用法

    以下は、NULLIFステートメントの例です。

    mysql> select nullif(1,2);
    + ————- +
    | nullif(1,2)|
    + ————- +
    | 1 |
    + ————- +
    1行セット(0.00秒)

    mysql> select nullif(2,1);
    + ————- +
    | nullif(2,1)|
    + ————- +
    | 2 |
    + ————- +
    1行セット(0.00秒)

    mysql> select nullif(1,1);
    +-------------+
    | nullif(1,1) |
    +-------------+
    | NULL |
    +-------------+
    1 row in set (0.00 sec)

    MySQLデータベースCOALESCEおよびNULLIF関数に関するこの投稿がおもしろくて役立つことを願っています。改善するためにフィードバックを提供してください

    関連記事

    WindowsにMySQLをインストールするためのステップバイステップガイド
    自動インクリメント列–OracleおよびMySQLのデフォルト値としてのシーケンス
    トップ51のよくあるMySQLインタビューの質問と回答
    ビルドするためのステップバイステップガイドWindows上のローカルApachePHPMySQL開発環境
    MySQLルートパスワードをリセットする方法


    1. ORA-12505、TNS:listenerは現在、connectdesで指定されたSIDを認識していません

    2. 高度なInnoDB設定によるMySQLパフォーマンスの向上

    3. MariaDBでのCRC32のしくみ

    4. GDIリソースリークの処理