SQLのwhereはcase式で条件切替が可能 条件の有り・無しを記述できる
  • facebookページ
  • twitterページ
  • 2020.06.30

    SQLのwhereはcase式で条件切替が可能 条件の有り・無しを記述できる

    SQLのwhereにcase式を使うサンプルをまとめてます。

    MySQLのサンプルデータベースEmployeesを使用しています。

    SQLのwhereでcase式を使って条件の切り替えが可能

    where句でcase式を使うと、条件指定を切り替えることが可能です。

    【関連記事】
    SQLのCASE式サンプル集 order byやgroup byとの組み合わせもバッチリ

    例えば、カラム名を指定する箇所をcase式で置き換えることで、条件対象カラムを切り替えることが可能です。

    以下のサンプルでは、gender(性別)がM(男性)の場合はbirth_date(誕生日)、F(女性)の場合はhire_date(雇用日)が1970年1月1日以降のデータを10件表示します。

    条件の有無をcase式で記述するサンプル

    対象カラムだけではなく、条件の有り・無しの切り替えも可能です。

    以下のサンプルは、emp_no(社員番号)が10010未満の場合はfirst_name(名)がBから始まるという条件を追加し、それ以外は条件なしでemployees(社員)テーブルから10件取得する例です。

    else 1とすることで、emp_noが10010以上の場合は無条件で真となります。

    具体的には、emp_noが10010未満の場合は以下のSQLに置き換えられます。

    emp_noが10010以上の場合は、以下のSQLに置き換えられます。無条件でselectすることになります。

    SQLだけで複雑な条件分岐が実現できるんですね。

    まとめ

    ポテパンダの一言メモ
    • case式でwhere句の条件を切り替え可能
    • カラム名記述箇所にcase式を記述すると対象カラムを切り替えることができる
    • 条件自体の有無をcase式で指定することも可能


    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE