excelで複雑な「場合分け」を書くのに、if文の入れ子によるカオスを経験したことがある人は、結構いるのではないでしょうか
sqlではCASE式で同じようなことを表現します。excelのifによるカオスよりは幾分ですが、わかりやすいです。例としては意味が無く面白くもないですが、以下のSQL文をベースにCASE式を完成させたいと思います。
Select tagid From M_tag
以下の通り書き換えてください。
Select tagid,tagid From M_tag
次にこうです。
Select
tagid as tagid1
,tagid as tagid2
From M_tag
それではtagid2を現在の数字が10より大きいか小さいかで振り分けてみます。
Select
tagid as tagid1
,(
case when
tagid >10 then '10より大きい'
else
'10より小さい' end
) as tagid2
From M_tag Order By tagid
ここまでやってみた人は思った結果と異なりましたか?それともこうなることは予想ができましたか?何を言っているか意味が分からない人はこれを試してみてください。
Select
tagid as tagid1
,(
case when
tagid >10 then '10より大きい'
else
'10より小さい' end) as tagid2
From M_tag Order By
cast(tagid as int)
あ!って気づけましたか?