Nee, u kunt niet verwijzen naar de alias elders in hetzelfde niveau van select
, anders dan in de order by
clausule, vanwege wanneer Oracle het intern toewijst.
Uit de documentatie (nadruk toegevoegd):
U kunt een kolomalias, c_alias, gebruiken om de direct voorafgaande expressie in de selectielijst te labelen, zodat de kolom wordt weergegeven met een nieuwe kop. De alias hernoemt het item uit de selectielijst effectief voor de duur van de query. De alias kan worden gebruikt in de
ORDER BY
clausule, maar geen andere clausules in de zoekopdracht .
Je zou een innerlijke vraag moeten gebruiken, zoiets als:
select "Id",
case "Id"
when 3
then 'foo'
else 'bar'
end AS "Results"
from (
select TABLEA.SomeIDNumber AS "Id",
from TABLEA
);