Não, você não pode fazer referência ao alias em outro lugar no mesmo nível de
select
, exceto no order by
cláusula, por causa de quando o Oracle a atribui internamente. Da documentação (grifo nosso):
Você pode usar um alias de coluna, c_alias, para rotular a expressão imediatamente anterior na lista de seleção para que a coluna seja exibida com um novo título. O alias renomeia efetivamente o item da lista de seleção durante a consulta. O alias pode ser usado noORDER BY
cláusula, mas não outras cláusulas na consulta .
Você precisaria usar uma consulta interna, algo como:
select "Id",
case "Id"
when 3
then 'foo'
else 'bar'
end AS "Results"
from (
select TABLEA.SomeIDNumber AS "Id",
from TABLEA
);