SQL: Verweis auf eine Alias-Spalte in der WHERE-Klausel

Aus DBWiki
Wechseln zu: Navigation, Suche

Zurück zur Übersicht



Auf eine zuvor erzeugte Alias-Spalte kann in der WHERE-Klausel der Abfrage direkt kein Bezug hergestellt werden. Der Grund dafür ist, dass bei der Auswertung zuerst die Zeilen ausgewertet werden, jedoch die Feldnamen zu diesem Zeitpunkt noch nicht bekannt sind. Verwendet man die Abfrage allerdings als Unterabfrage, so ist auch der Alias-Name der Spalte der Unterabfrage in der WHERE-Klausel der Hauptabfrage gültig.

Allgemeine Lösung

Hinweis für Access-Anwender
Um die folgenden Abfragen selbst testen zu können, müssen die Tabellen der Übungsdatenbank vorhanden sein.


Das ist eine ungültige Abfrage:

SELECT ma_name AS Mitarbeiter, abt_nr AS Abteilungsnummer
FROM   mitarbeiter
WHERE  Abteilungsnummer = 20

Das ist hingegen erlaubt:

SELECT *
FROM   (SELECT ma_name AS Mitarbeiter, abt_nr AS Abteilungsnummer
        FROM   mitarbeiter) AS Q
WHERE  Abteilungsnummer = 20

Hier stellt Q einen erforderlichen Tabellen-Alias dar.



Zurück zur Übersicht