かなめのロジック

フリーSEの雑記ブログ。ORACLEやPostgreSQL、情報セキュリティ、金融について主に書いています。

CASE式を使ってみよう、基本編

time 2016/01/09

CASE式を使ってみよう、基本編

CASE式は、IF-ELSEをSQL中で実現できる汎用的な条件式です。
SELECT句でよく使われ、うまく使用すると威力を発揮します。
今回の記事では、このCASE式についての基本的な使い方を解説していきます。

sponsored link

CASE式とは

CASE式を使用することで、SQL中で条件制御を行うことが出来ます。
「条件と言えば、WHERE句やHAVING句とは違うの?」という疑問がわきます。WHERE句やHAVING句は出力条件を実現しますが、CASE式は条件により値を変換することを実現する事が出来ます。

また、CASE式はORACLEだけで使用できる式ではありません。SQLの標準に取り入れられているので他のDBでも使用できます。(SQLServer、MYSQLなど)

CASE式には、単純CASE式と検索CASE式の2種類があります。それぞれについて、これから解説していきます。

単純CASE式

単純CASE式は、ある項目の値を元に条件分岐させるものです。CやJAVAを知っている方なら、SWITCH文と同じイメージと言えば伝わりますでしょうか。

以下具体的な使用例です。

注意点としては、NULLの評価が出来ない点です。気をつけましょう。

検索CASE式

検索CASE式は、等価条件以外の条件で条件分岐させるものです。単純CASE式と比較して、汎用的に使用できます。

以下具体的な使用例です。

単純CASE式で出来なかったNULLの評価も、【IS NULL】を使用することで実現できます。

まとめ

ここまでCASE式の使用例を示してきましたが、CASE式はSELECT句で使用することで威力を発揮すること分かります。
ある項目の値を別の値に変換したいことは、よくあることです。
単純CASE式と検索CASE式の違いを理解し、NULLの扱いに特に注意し使用してみましょう。

関連(CASE式)



関連(DECODE関数)

sponsored link

管理人

かなめ

フリーの業務系システムエンジニア。情報処理安全確保支援士。 ORACLEと金融と子育ての狭間で、元気に楽しくやってます。 [詳細]

管理人twitter

ブログ村



sponsored link