Có thể sử dụng bí danh trong danh sách chọn truy vấn để đặt tên khác cho cột. Bạn có thể sử dụng bí danh trong GROUP BY, ORDER BY hoặc HAVINGclauses để tham chiếu đến cột.
SQL chuẩn không cho phép tham chiếu đến bí danh cột trong mệnh đề WHERE. Hạn chế này được áp dụng vì khi mệnh đề WHERE được đánh giá, giá trị cột có thể chưa được xác định.
Vì vậy, truy vấn sau là bất hợp pháp:
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>
Bí danh cột được phép trong:
- NHÓM THEO
- ĐẶT HÀNG BỞI
- CÓ
Bạn có thể tham khảo bí danh cột trong mệnh đề WHERE trong các trường hợp sau:
- Truy vấn phụ
- Biểu thức Bảng Chung (CTE)
Ví dụ:
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>