Un alias peut être utilisé dans une liste de sélection de requête pour donner un nom différent à une colonne. Vous pouvez utiliser l'alias dans les clauses GROUP BY, ORDER BY ou HAVING pour faire référence à la colonne.
Le SQL standard interdit les références aux alias de colonne dans une clause WHERE. Cette restriction est imposée car lorsque la clause WHERE est évaluée, la valeur de la colonne n'a peut-être pas encore été déterminée.
Ainsi, la requête suivante est illégale :
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>
L'alias de colonne est autorisé dans :
- REGROUPER PAR
- TRIER PAR
- AVOIR
Vous pouvez faire référence à l'alias de colonne dans la clause WHERE dans les cas suivants :
- Sous-requête
- Expression de table commune (CTE)
Par exemple,
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>