Tóm tắt
Dùng nhiều AS trong SELECT để tạo cột ảo (computed column) với giá trị hằng số hoặc biểu thức – không thay đổi cấu trúc bảng.
Ví dụ
1. Tạo bảng
CREATE TABLE ColumnDoesNotExists (
UserId INT,
UserName VARCHAR(20)
);
INSERT INTO ColumnDoesNotExists VALUES
(100,'Larry'), (101,'Sam'), (102,'Mike'), (103,'David'),
(104,'Robert'), (105,'Maxwell'), (106,'Bob'), (107,'John'), (108,'James');
2. Thêm 1 cột ảo Age
SELECT UserId, UserName, 23 AS Age FROM ColumnDoesNotExists;
3. Thêm 3 cột ảo Age, Marks, CountryName
SELECT UserId, UserName,
23 AS Age,
99 AS Marks,
'UK' AS CountryName
FROM ColumnDoesNotExists;
4. Kết quả
+--------+----------+-----+-------+-------------+
| UserId | UserName | Age | Marks | CountryName |
+--------+----------+-----+-------+-------------+
| 100 | Larry | 23 | 99 | UK |
| 101 | Sam | 23 | 99 | UK |
| ... | ... | ... | ... | ... |
+--------+----------+-----+-------+-------------+
Ứng dụng
- Thêm cột tính toán:
(price * qty) AS total - Thêm cột mặc định cho report/export.
- Đổi tên cột:
UserName AS TenNguoiDung - Kết hợp CASE:
CASE WHEN status=1 THEN 'Active' ELSE 'Inactive' END AS StatusText
Lưu ý
- Cột ảo chỉ tồn tại trong kết quả truy vấn – không lưu vào đĩa.
- Không thể dùng cột ảo trong WHERE/GROUP BY/HAVING cùng cấp (phải lồng subquery hoặc lặp biểu thức).
- Alias (AS) không bắt buộc nhưng khuyến nghị cho rõ ràng.