sql >> Base de Datos >  >> RDS >> Oracle

Uso de Alias ​​In When de una declaración de caso en Oracle SQL

No, no puede hacer referencia al alias en ningún otro lugar en el mismo nivel de select , excepto en el order by cláusula, debido a cuando Oracle la asigna internamente.

De la documentación (énfasis agregado):

Puede usar un alias de columna, c_alias, para etiquetar la expresión inmediatamente anterior en la lista de selección para que la columna se muestre con un nuevo encabezado. El alias cambia efectivamente el nombre del elemento de la lista de selección durante la consulta. El alias se puede utilizar en el ORDER BY cláusula, pero no otras cláusulas en la consulta .

Necesitaría usar una 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
);