Pages

2013/07/29

[SQL Server] WHERE 条件内での CASE 文を使った取得項目の分岐

Transact-SQL (SQL Server) でも、WHERE 条件内で CASE 文を使用できる。単純 CASE 式、検索 CASE 式、いずれもサポートされる。
-- HAGE 列の値によって 'hogehoge' と比較する項目を分岐させる

SELECT *  FROM  HOGE
WHERE
(
 CASE HAGE
   WHEN 1 THEN AAA
   WHEN 2 THEN BBB
   ELSE  CCC
  END
) = 'hogehoge'

他の条件と AND や OR で結合もできる。
なお、括弧はなくても良いが、見通しを良くするという意味で付けたほうが丁寧だろうね。
Related Posts Plugin for WordPress, Blogger...