Предложение 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!