Oracle
 sql >> Database >  >> RDS >> Oracle

Utilizzo di Alias ​​In When Porzione di un'istruzione Case in Oracle SQL

No, non puoi fare riferimento all'alias altrove nello stesso livello di select , tranne che in order by clausola, a causa di quando Oracle la assegna internamente.

Dalla documentazione (enfasi aggiunta):

È possibile utilizzare un alias di colonna, c_alias, per etichettare l'espressione immediatamente precedente nell'elenco di selezione in modo che la colonna venga visualizzata con una nuova intestazione. L'alias rinomina in modo efficace l'elemento dell'elenco di selezione per la durata della query. L'alias può essere utilizzato nel ORDER BY clausola, ma non altre clausole nella query .

Dovresti usare una query interna, qualcosa del tipo:

select "Id",
    case "Id"
        when 3
        then 'foo'
        else 'bar'
    end AS "Results"
from (
    select TABLEA.SomeIDNumber AS "Id",
    from TABLEA
);