2008/04/08

[ORCLE]CASE式には、書式が2つあった

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 コメント:

コメントを投稿