Использование нескольких условий в Oracle WHEN CASE - PullRequest
0 голосов
/ 16 ноября 2018

У меня возникли некоторые проблемы с использованием CASE в CASE, когда мне нужно выполнить две проверки в предложении WHEN, и это не удалось, например:

CASE
WHEN trim(to_char(sysdate,'DAY')) = 'TUESDAY' THEN
CASE 
WHEN ((max(trunc(initial_date)) < trunc(sysdate)) AND name like 'Ma%') OR ((max(trunc(initial_date)) < trunc(sysdate)) AND name like 'Rna%') THEN 'something'
WHEN ((max(trunc(initial_date)) < trunc(sysdate)) AND name like '%ame') OR ((max(trunc(initial_date)) < trunc(sysdate)) AND name like '%ore') THEN 'somethingelse'
END
ELSE 'noproblemo'
END
as 'info',
'username' as username
from DBtable@dblink
where initialdate < trunc(sysdate)
and details = 'Criteria for search'

теперь выдает:

ORA-00937: не групповая функция для одной группы ORA-02063: предыдущая строка из DBLINK

Любые указатели высоко ценятся

1 Ответ

0 голосов
/ 16 ноября 2018

Я думаю, что вы пропустили еще END, так как это NESTED CASE EXPRESSION

CASE
    WHEN trim(to_char(sysdate,'DAY')) = 'TUESDAY' THEN
    (CASE 
    WHEN ((max(trunc(initial_date)) over() < trunc(sysdate)) AND name like 'Ma%') OR ((max(trunc(initial_date))  over() < trunc(sysdate)) AND name like 'Rna%') THEN 'something'
    WHEN ((max(trunc(initial_date))  over() < trunc(sysdate)) AND name like '%ame') OR ((max(trunc(initial_date)) over() < trunc(sysdate)) AND name like '%ore') THEN 'somethingelse'
    ELSE 'noproblemo'
    END)
    END,
    'username' as username
    from DBtable@dblink
    where initialdate < trunc(sysdate)
    and details = 'Criteria for search'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...