[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 で結合もできる。
なお、括弧はなくても良いが、見通しを良くするという意味で付けたほうが丁寧だろうね。