2012-09-25 57 views
2

早上好,缺少关键字(ORA-00905) - 甲骨文的SQL Case语句

我在想,如果你们中的一个能帮助我 - 应该是相当快的我想像;我是一个很容易丢失明显事物的新手。

我有以下语句返回上述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 

回答

8

你混了做案件的两种方式。您可能需要:

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语句括号。