SQLで、CASE式を使う機会があったので、まとめてみたいと思います。
まず、ORACLE 9i Silverを参考にすると
SELECT 名前 , 受験科目 , CASE 点数 WHEN 80 THEN '合格' WHEN 50 THEN '追試' ELSE '不合格' END FROM テスト WHERE 学籍番号 = 200608 |
というような感じで書かれていました。
上の文は、単純CASE式と呼ばれているらしく、他に、検索CASE式という書き方もあるようです。
--検索CASE式
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE 'その他' END
via:CASE式のススメ
単純CASE文は、ただカラムの値によって、条件を分岐している(DECODEに近い)のに対して、検索CASE式は、より細かい式の評価もしてくれると解釈したのですが、間違っているかなー。
ちょっと自信ないっす(・_・?)
0 コメント:
コメントを投稿