sql >> Database >  >> RDS >> Oracle

Alias ​​gebruiken in When-gedeelte van een Case-instructie in Oracle SQL

Nee, u kunt niet verwijzen naar de alias elders in hetzelfde niveau van select , anders dan in de order by clausule, vanwege wanneer Oracle het intern toewijst.

Uit de documentatie (nadruk toegevoegd):

U kunt een kolomalias, c_alias, gebruiken om de direct voorafgaande expressie in de selectielijst te labelen, zodat de kolom wordt weergegeven met een nieuwe kop. De alias hernoemt het item uit de selectielijst effectief voor de duur van de query. De alias kan worden gebruikt in deORDER BY clausule, maar geen andere clausules in de zoekopdracht .

Je zou een innerlijke vraag moeten gebruiken, zoiets als:

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



  1. VLDB's in de 20-tieners:je hebt een grotere nodig ...

  2. Oplossing voor:Store update-, insert- of delete-instructie beïnvloedde een onverwacht aantal rijen (0)

  3. controleer op geldige datum die is aangegeven in varchar2

  4. Wat is de betekenis van het vraagteken in MySQL bij WHERE column =??