WHERE句でCASE文

私は主にSQLServerを使用していますが、プロシージャ等で条件によってWHERE句を変えたいときがあります。

こんな感じで書いていました。
これはまだ短いのでいいですが、膨大な列を取得する場合など、WHERE句がちょっと違うだけでかなり長いプロシージャになってメンテも大変でした。
そんなときに発見したのがWHERE句でCASE文を使うやり方です。
上のプロシージャはこんな風に書けます。

1行になりました。
WHERE句のCASE文で@KBNの値によって条件とするフィールドを切り替えています。

業務システム開発では請求先での集計や店舗での集計等、グループ化するコードが違うだけで納品数や納品額、粗利等、他の項目は同じ場合が多いです。
そんなときに使えるWHERE句でのCASE分です。
ORACLEでも使えると思います。

応用するとこんなことも可能です。



スポンサーサイト
アフィリエイトはエーハチネット
ドメイン取るならお名前.com

コメントを残す

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