CASE・・・演算子?
今日職場で超図解 SQLハンドブックという本*1を読んだ。
その中で、CASE式が演算子として紹介されてた。
まぁ、CASE「文」として紹介するよりも遙かにましなんだけど・・・その後にJavaのswitchと同じような物、みたいなことが書かれていてしょんぼり。
CASE式はswith文なんかとは全然違うよ!
式だからほとんどどこにでも書ける*2んだよ!!
例えば。
-- 勘定科目コードによって貸方を足すか、借方を引くかが違うときとかに使える SELECT sum(CASE col1 WHEN 1 THEN col2 ELSE -col3 END) FROM SomeTable
こんな風に、集計関数の中に入れることだって出来ちゃう。
でもあえてCASEを演算子として教えても、弊害はあんまりないかな。
だとするとこれは何項演算子だ?最低2項必要だけど、それ以上も可能だし・・・
あれ、それ以前に、IN述語なんかも演算子と考えると・・・
これは弊害なのかどうなのか。