SQL - Mệnh đề TOP, LIMIT hoặc ROWNUM
SQL TOP mệnh đề được sử dụng để lấy số TOP N hoặc bản ghi X phần trăm từ một bảng.
Note- Tất cả các cơ sở dữ liệu không hỗ trợ mệnh đề TOP. Ví dụ: MySQL hỗ trợLIMIT mệnh đề tìm nạp số lượng bản ghi hạn chế trong khi Oracle sử dụng ROWNUM lệnh để tìm nạp một số lượng bản ghi hạn chế.
Cú pháp
Cú pháp cơ bản của mệnh đề TOP với câu lệnh SELECT sẽ như sau.
SELECT TOP number|percent column_name(s)
FROM table_name
WHERE [condition]
Thí dụ
Hãy xem xét bảng KHÁCH HÀNG có các bản ghi sau:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
Truy vấn sau đây là một ví dụ trên máy chủ SQL, sẽ tìm nạp 3 bản ghi hàng đầu từ bảng CUSTOMERS.
SQL> SELECT TOP 3 * FROM CUSTOMERS;
Điều này sẽ tạo ra kết quả sau:
+----+---------+-----+-----------+---------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+---------+-----+-----------+---------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
+----+---------+-----+-----------+---------+
Nếu bạn đang sử dụng máy chủ MySQL, thì đây là một ví dụ tương đương:
SQL> SELECT * FROM CUSTOMERS
LIMIT 3;
Điều này sẽ tạo ra kết quả sau:
+----+---------+-----+-----------+---------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+---------+-----+-----------+---------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
+----+---------+-----+-----------+---------+
Nếu bạn đang sử dụng máy chủ Oracle, thì khối mã sau có một ví dụ tương đương.
SQL> SELECT * FROM CUSTOMERS
WHERE ROWNUM <= 3;
Điều này sẽ tạo ra kết quả sau:
+----+---------+-----+-----------+---------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+---------+-----+-----------+---------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
+----+---------+-----+-----------+---------+