Отсутствует ключевое слово (ORA-00905) - Оператор Oracle 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

1 ответ

Решение

Вы смешиваете два способа ведения дела. Вам либо нужно:

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

или же

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

Это "простые" и "искомые" варианты в документах.

Но так как вы не можете использовать like в первой версии вам нужна вторая:

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

Вам также не нужны скобки вокруг двух case заявления.

Другие вопросы по тегам