Mệnh đề SELECT TOP
được sử dụng để chỉ định số bản ghi trả về.
Mệnh đề SELECT TOP
có thể rất hữu dụng cho các bảng ghi lớn với hàng ngàn bản ghi. Trả về một lượng lớn bản ghi có thể ảnh hưởng đến hiệu suất, tốc độ hiển thị trang.
Lưu ý: Tất cả hệ thống cơ sở dữ liệu hiện đều hỗ trợ mệnh đề SELECT TOP
.
Cú pháp SQL Server / MS Access:
SELECT TOP number|percentcolumn_name(s)
FROM table_name;
SQL SELECT TOP tương đương trong MySQL và Oracle
Cú pháp MySQL:
SELECT column_name(s)
FROM table_name
LIMIT number;
Ví dụ:
SELECT *
FROM Persons
LIMIT 5;
Cú pháp Oracle:
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;
Ví dụ:
SELECT *
FROM Persons
WHERE ROWNUM <=5;
Cơ sở dữ liệu Demo
Trong khoá này chúng ta sẽ sử dụng bảng cơ sở dữ liệu mẫu Northwind được nhiều người biết đến.
Dưới đây là một lựa chọn từ bảng “Customers”:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
6 | Blauer See Delikatessen | Hanna Moos | Forsterstr. 57 | Mannheim | 68306 | Germany |
Ví dụ SQL SELECT TOP
Câu lệnh SQL sau lựa chọn hai bản ghi đầu tiên từ bảng “Customers”.
Ví dụ:
SELECT TOP 2 * FROM Customers;
Kết quả:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
Ví dụ về SQL SELECT TOP PERCENT
Câu lệnh SQL sau lựa chọn 50% bản ghi đầu tiên từ bảng “Customers”.
Ví dụ:
SELECT TOP 50 PERCENT * FROM Customers;
Kết quả:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |