Nej, du kan inte referera till aliaset någon annanstans i samma nivå av select
, annat än i ordning efter
klausul, på grund av när Oracle tilldelar den internt.
Från dokumentationen (min kursivering):
Du kan använda ett kolumnalias, c_alias, för att märka det omedelbart föregående uttrycket i urvalslistan så att kolumnen visas med en ny rubrik. Aliaset byter effektivt namn på urvalslistobjektet under hela frågan. Aliaset kan användas i
ORDER BY sats, men inte andra satser i frågan .
Du skulle behöva använda en inre fråga, något som:
select "Id",
case "Id"
when 3
then 'foo'
else 'bar'
end AS "Results"
from (
select TABLEA.SomeIDNumber AS "Id",
from TABLEA
);