缺少关键字(ORA-00905) - Oracle SQL案例陈述

时间:2012-09-25 09:28:57

标签: sql oracle case ora-00905

早上好,

我想知道你们其中一个人是否可以帮助我 - 我想象的应该是相当快的;我是一个新手,很容易错过明显的事情。

我有以下声明,它返回上述905错误......任何想法?

提前致谢。

(CASE CONTACTS.TELEPHONE_NO_DAY
    WHEN CONTACTS.TELEPHONE_NO_DAY LIKE '07%'
    THEN CONTACTS.TELEPHONE_NO_DAY
    ELSE NULL
    END) TEL_DAY,
   (CASE CONTACTS.TELEPHONE_NO_EVE
    WHEN CONTACTS.TELEPHONE_NO_EVE LIKE '07%'
    THEN CONTACTS.TELEPHONE_NO_EVE
    ELSE NULL
    END) TEL_EVE

1 个答案:

答案 0 :(得分:9)

你混淆了两种做案的方法。你需要:

CASE <expression>
WHEN <comparison expression> THEN <return expression>
...

CASE
WHEN <condition> THEN <return expression>
...

这些是the docs中的“简单”和“搜索”变体。

但由于您无法在第一个版本中使用like,因此您需要第二个:

CASE
WHEN CONTACTS.TELEPHONE_NO_DAY LIKE '07%'
THEN CONTACTS.TELEPHONE_NO_DAY
ELSE NULL
END

您也不需要围绕两个case语句的括号。