ORACLE機能 SQL

[SQL] 検索結果に条件分岐を行う(CASE~WHEN)

投稿日:2017年4月8日 更新日:

検索した結果に対して条件分岐処理を入れて、表示を変えたい場合にはCASE~WHEN句を使用します。

構文

CASE~WHEN構文は、①値で分岐するパターンと②条件で分岐するパターンがあります。

① 値で分岐するパターン
CASE <値>   WHEN <比較値1> THEN <結果1>   WHEN <比較値2> THEN <結果2>   ELSE <結果その他> END
② 条件で分岐するパターン
CASE   WHEN <条件1> THEN <結果1>   WHEN <条件2> THEN <結果2>   ELSE <結果その他> END

①の書き方は、1つの値と比較値の単純な比較の場合に適しています。

②の書き方は、書き方1では書ききれないような単純な比較ではない場合に使用します。

サンプルソース

以下のテーブルをサンプルとします。

【TBL_SYAIN】
CDNAMEDEPTSCORE
001田中1038
002山本2092
003篠原1075
004米山9963
005藤田3049

例)dept値を分岐して名称に変換して表示する

結果
CD NAME DEPT ---- ------ -------- 001 田中 営業部 002 山本 開発部 003 篠原 営業部 004 米山 その他 005 藤田 総務部

例)score値によって結果を表示する

結果
CD NAME DEPT ---- ------ -------- 001 田中 不合格 002 山本 合格 003 篠原 補習 004 米山 補習 005 藤田 不合格

メモ

  • DECODE関数でも同様のことができます。

関連項目


スポンサーリンク

スポンサーリンク

-ORACLE機能, SQL

執筆者:



comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

スポンサーリンク