SQLで大小比較の条件文

Oracleしか使ってないので、SQLServerはあまり知りませんが・・・
decode文を使うときに大小比較を行う場合、単純には出来ません。
SIGN関数を使います。

A>BのときにC、A<Bのときはd、A=BのときはEを出したいとき
decode(SIGN(A-B),1,C,-1,D,E)
っていうふうにやります。

case文なら

case
when A < B then C
when A > B then D
when A = B then E
end

という感じで出来ますけどね、ちょっとした条件文のときはdecodeのほうが早く書ける気がする。
慣れかもしれんけど

0 コメント:

コメントを投稿