Alias trong SQL Server
Trong hướng dẫn này, bạn sẽ tìm hiểu cách sử dụng bí danh (alias) trong SQL Server bao gồm bí danh cột và bí danh bảng.
Bí danh cột trong SQL Server
Khi bạn sử dụng câu lệnh SELECT
để truy vấn dữ liệu từ một bảng, SQL Server sử dụng tên cột làm tiêu đề cột cho đầu ra. Xem ví dụ sau:
SELECT
first_name,
last_name
FROM
sales.customers
ORDER BY
first_name;
Đây là kết quả:

Như bạn thấy trong kết quả đầu ra, tên cột first_name
và last_name
được sử dụng cho các tiêu đề cột tương ứng.
Để có được tên đầy đủ của khách hàng, bạn có thể ghép tên, khoảng trắng và họ bằng cách sử dụng toán tử +
để nối chuỗi như trong truy vấn sau:
SELECT
first_name + ' ' + last_name
FROM
sales.customers
ORDER BY
first_name;
Đây là kết quả:

SQL Server trả về cột có tên là No column name
không có ý nghĩa trong trường hợp này.
Để gán một cột hoặc một biểu thức một tên tạm thời trong khi thực hiện truy vấn, bạn sử dụng bí danh cột (column alias).
Sau đây minh họa cú pháp bí danh cột:
column_name | expression AS column_alias
Trong cú pháp này, bạn sử dụng từ khóa AS
để phân tách tên hoặc biểu thức cột và bí danh.
Vì từ khóa AS
là tùy chọn, bạn có thể gán bí danh cho một cột như sau:
column_name | expression column_alias
Quay lại ví dụ trên, bạn có thể viết lại truy vấn bằng bí danh cột như sau:
SELECT
first_name + ' ' + last_name AS full_name
FROM
sales.customers
ORDER BY
first_name;
Lưu ý rằng nếu bí danh cột chứa khoảng trắng, bạn cần đặt nó trong dấu nháy đơn như trong ví dụ sau:
SELECT
first_name + ' ' + last_name AS 'Full Name'
FROM
sales.customers
ORDER BY
first_name;
Đây là kết quả:

Ví dụ sau đây cho thấy cách gán bí danh cho một cột:
SELECT
category_name 'Product Category'
FROM
production.categories;
Đây là kết quả:

Trong ví dụ này, bí danh cột loại sản phẩm rõ ràng hơn nhiều so với tên cột category_name
.
Khi bạn gán một cột một bí danh, bạn có thể sử dụng tên cột hoặc bí danh cột trong mệnh đề ORDER BY
như trong ví dụ sau:
SELECT
category_name 'Product Category'
FROM
production.categories
ORDER BY
category_name;
SELECT
category_name 'Product Category'
FROM
production.categories
ORDER BY
'Product Category';
Lưu ý rằng mệnh đề ORDER BY
là mệnh đề cuối cùng được xử lý do đó các bí danh cột được biết đến tại thời điểm sắp xếp.
Bí danh bảng trong SQL Server
Một bảng có thể được cung cấp một bí danh được gọi là tên tương quan hoặc biến phạm vi.
Tương tự như bí danh cột, một bí danh bảng có thể được chỉ định có hoặc không có từ khóa AS
:
table_name AS table_alias
table_name table_alias
Xem ví dụ sau:
SELECT
sales.customers.customer_id,
first_name,
last_name,
order_id
FROM
sales.customers
INNER JOIN sales.orders ON sales.orders.customer_id = sales.customers.customer_id;
Đây là kết quả:

Trong ví dụ này, cả bảng customers
và bảng orders
đều có một cột có cùng tên customer_id
, do đó bạn cần tham chiếu đến cột bằng cú pháp sau:
table_name.column_name
Như là:
sales.custoners.customer_id
sales.orders.customer_id
Nếu bạn không làm như vậy, máy chủ SQL sẽ báo lỗi.
Các truy vấn trên là khá khó đọc. May mắn thay, bạn có thể cải thiện khả năng đọc của nó bằng cách sử dụng bí danh bảng như sau:
SELECT
c.customer_id,
first_name,
last_name,
order_id
FROM
sales.customers c
INNER JOIN sales.orders o ON o.customer_id = c.customer_id;
Trong truy vấn này, c
là bí danh cho bảng sales.customers
và o
là bí danh cho bảng sales.orders
.
Khi bạn gán bí danh cho một bảng, bạn phải sử dụng bí danh để tham chiếu các cột trong bảng. Nếu không, SQL Server sẽ báo lỗi.
Trong hướng dẫn này, bạn đã học cách sử dụng bí danh (alias) trong SQL Server bao gồm bí danh cột và bí danh bảng.