Nie, nie możesz odwoływać się do aliasu w innym miejscu na tym samym poziomie select
, inne niż w order by
klauzula, ponieważ Oracle przypisuje ją wewnętrznie.
Z dokumentacji (podkreślenie dodane):
Możesz użyć aliasu kolumny c_alias, aby nadać etykietę bezpośrednio poprzedzającemu wyrażeniu na liście wyboru, tak aby kolumna była wyświetlana z nowym nagłówkiem. Alias skutecznie zmienia nazwę elementu listy wyboru na czas trwania zapytania. Alias może być używany w ORDER BY
klauzula, ale nie inne klauzule w zapytaniu .
Musisz użyć wewnętrznego zapytania, takiego jak:
select "Id",
case "Id"
when 3
then 'foo'
else 'bar'
end AS "Results"
from (
select TABLEA.SomeIDNumber AS "Id",
from TABLEA
);