Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Alias ​​im When-Teil einer Case-Anweisung in Oracle SQL verwenden

Nein, Sie können nicht auf den Alias ​​an anderer Stelle in derselben Ebene von select verweisen , außer in der order by -Klausel, weil Oracle sie intern zuweist.

Aus der Dokumentation (Hervorhebung hinzugefügt):

Sie können einen Spaltenalias, c_alias, verwenden, um den unmittelbar vorangehenden Ausdruck in der Auswahlliste zu kennzeichnen, sodass die Spalte mit einer neuen Überschrift angezeigt wird. Der Alias ​​benennt das Auswahllistenelement effektiv für die Dauer der Abfrage um. Der Alias ​​kann im ORDER BY verwendet werden -Klausel, aber keine anderen Klauseln in der Abfrage .

Sie müssten eine innere Abfrage verwenden, etwa so:

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