Ошибка SQL Команда не завершена правильно с подзапросом - PullRequest
0 голосов
/ 01 июня 2018

Я получаю ORA-00933: команда SQL неправильно завершена.Не уверен, что я делаю не так.Пожалуйста, помогите

    select abc_mgr.ldap_test.*
from (select abc_mgr.ldap_test.*
      from abc_mgr.ldap_test
      order by (case STATUS when 'ACTV' then 1 when 'NOTACTIV' then 2 WHEN 'DIS' then 3 else 4 END),
               (case BILL_SYS when 'V' then 1 when 'S' then 2 when 'E' then 3 else 4 END)
    ) abc_mgr.ldap_test
where rownum = 1;

1 Ответ

0 голосов
/ 01 июня 2018

Предложение order by не содержит скобок.Просто удалите их, и все будет в порядке:

select t.*
from   (select   t.*
        from     t
        order by case status when 'ACTV'     then 1 
                             when 'NOTACTIV' then 2
                             when 'DIS'      then 3 
                             else 4 
                 end,
                 case BS when 'V' then 1 
                         when 'S' then 2 
                         when 'E' then 3 
                         else 4 
                end
       ) t
where rownum = 1;

В качестве альтернативы, если вы используете Oracle 12c или новее, вы можете просто использовать современное предложение fetch:

select   t.* 
from     t
order by case status when 'ACTV'     then 1 
                     when 'NOTACTIV' then 2
                     when 'DIS'      then 3 
                     else 4 
         end,
         case BS when 'V' then 1 
                 when 'S' then 2 
                 when 'E' then 3 
                 else 4 
        end
fetch first row only -- Here!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...