Отсутствует ключевое слово (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
заявления.