Xác định bản ghi được chọn bằng truy vấn SQL.
Cú pháp
CHỌN [TẤT CẢ | RIÊNG BIỆT | DISTINCTROW | [TOP n [PERCENT]]]
Bảng FROMCâu lệnh SELECT chứa các vị từ này có các phần sau đây:
Phần |
Mô tả |
ALL |
Giả định nếu bạn không bao gồm một trong các vị từ. Bộ máy cơ sở dữ liệu Microsoft Access sẽ chọn tất cả các bản ghi đáp ứng các điều kiện trong câu lệnh SQL. Hai ví dụ sau đây tương đương nhau và trả về tất cả các bản ghi từ bảng Nhân viên:
|
DISTINCT |
Bỏ qua các bản ghi có chứa dữ liệu trùng lặp trong các trường đã chọn. Để được đưa vào kết quả truy vấn, giá trị của mỗi trường được liệt kê trong câu lệnh SELECT phải là duy nhất. Ví dụ: một số nhân viên được liệt kê trong bảng Nhân viên có thể có cùng họ. Nếu hai bản ghi chứa Smith trong trường LastName, câu lệnh SQL sau đây chỉ trả về một bản ghi có chứa Smith:
Nếu bạn bỏ qua DISTINCT, truy vấn này trả về cả hai bản ghi Smith. Nếu mệnh đề SELECT có chứa nhiều trường thì tổ hợp giá trị từ tất cả các trường phải là duy nhất để bản ghi cho trước được đưa vào kết quả. Đầu ra của truy vấn sử dụng DISTINCT không thể cập nhật được và không phản ánh các thay đổi tiếp theo do người dùng khác thực hiện. |
DISTINCTROW |
Bỏ qua dữ liệu dựa trên toàn bộ bản ghi trùng lặp, chứ không chỉ các trường trùng lặp. Ví dụ: bạn có thể tạo một truy vấn kết hợp các bảng Khách hàng và Đơn hàng trên trường ID_Khách_hàng. Bảng Khách hàng không chứa trường CustomerID trùng lặp nào, nhưng bảng Đơn hàng vì mỗi khách hàng có thể có nhiều đơn hàng. Câu lệnh SQL sau đây cho thấy cách bạn có thể sử dụng DISTINCTROW để tạo danh sách các công ty có ít nhất một đơn hàng nhưng không có bất kỳ chi tiết nào về các đơn hàng đó:
Nếu bạn bỏ qua DISTINCTROW, truy vấn này sẽ tạo ra nhiều hàng cho mỗi công ty có nhiều đơn hàng. DISTINCTROW có hiệu ứng chỉ khi bạn chọn các trường từ một số, nhưng không phải tất cả, trong số các bảng được sử dụng trong truy vấn. DISTINCTROW được bỏ qua nếu truy vấn của bạn chỉ bao gồm một bảng hoặc nếu bạn xuất các trường từ tất cả các bảng. |
TOP n [PERCENT] |
Trả về một số bản ghi nhất định nằm ở trên cùng hoặc dưới cùng của một phạm vi được xác định bởi mệnh đề ORDER BY. Giả sử bạn muốn tên của 25 học sinh hàng đầu từ lớp năm 1994:
Nếu bạn không bao gồm mệnh đề ORDER BY, truy vấn sẽ trả về một tập hợp 25 bản ghi tùy ý từ bảng Học viên thỏa mãn mệnh đề WHERE. Vị từ TOP không chọn giữa các giá trị bằng nhau. Trong ví dụ trên đây, nếu điểm trung bình của lớp 25 và 26 cao nhất là như nhau, truy vấn sẽ trả về 26 bản ghi. Bạn cũng có thể sử dụng từ dành riêng PERCENT để trả về một tỷ lệ phần trăm bản ghi nhất định nằm ở đầu hoặc cuối phạm vi được xác định bởi mệnh đề ORDER BY. Giả sử thay vì 25 học viên hàng đầu, bạn muốn có 10% lớp học dưới cùng:
Xác định ASC xác định sự trả về của các giá trị dưới cùng. Giá trị sau TOP phải là Một Số nguyên chưa được ký. Top không ảnh hưởng đến việc truy vấn có thể cập nhật hay không. |
table |
Tên của bảng mà các bản ghi được truy xuất từ đó. |