Ein Alias kann in einer Abfrageauswahlliste verwendet werden, um einer Spalte einen anderen Namen zu geben. Sie können den Alias in den Klauseln GROUP BY, ORDER BY oder HAVING verwenden, um auf die Spalte zu verweisen.
Standard-SQL verbietet Verweise auf Spaltenaliase in einer WHERE-Klausel. Diese Einschränkung wird auferlegt, da bei der Auswertung der WHERE-Klausel der Spaltenwert möglicherweise noch nicht bestimmt wurde.
Die folgende Abfrage ist also illegal:
SQL> SELECT empno AS employee, deptno AS department, sal AS salary
2 FROM emp
3 WHERE employee = 7369;
WHERE employee = 7369
*
ERROR at line 3:
ORA-00904: "EMPLOYEE": invalid identifier
SQL>
Der Spaltenalias ist erlaubt in:
- GRUPPE NACH
- BESTELLEN VON
- HABEN
Sie können in den folgenden Fällen auf den Spaltenalias in der WHERE-Klausel verweisen:
- Unterabfrage
- Gemeinsamer Tabellenausdruck (CTE)
Zum Beispiel
SQL> SELECT * FROM
2 (
3 SELECT empno AS employee, deptno AS department, sal AS salary
4 FROM emp
5 )
6 WHERE employee = 7369;
EMPLOYEE DEPARTMENT SALARY
---------- ---------- ----------
7369 20 800
SQL> WITH DATA AS(
2 SELECT empno AS employee, deptno AS department, sal AS salary
3 FROM emp
4 )
5 SELECT * FROM DATA
6 WHERE employee = 7369;
EMPLOYEE DEPARTMENT SALARY
---------- ---------- ----------
7369 20 800
SQL>