Ett alias kan användas i en frågevallista för att ge en kolumn ett annat namn. Du kan använda aliaset i GROUP BY, ORDER BY eller HAVING-satser för att referera till kolumnen.
Standard SQL tillåter inte referenser till kolumnalias i en WHERE-sats. Denna begränsning införs eftersom när WHERE-satsen utvärderas kanske kolumnvärdet inte har fastställts ännu.
Så följande fråga är olaglig:
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>
Kolumnaliaset är tillåtet i:
- GRUPPER EFTER
- BESTÄLL EFTER
- HA
Du kan referera till kolumnaliaset i WHERE-satsen i följande fall:
- Underfråga
- Common Table Expression (CTE)
Till exempel,
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>