Ngôn ngữ SQL - Câu lệnh SELECT TOP
Câu lệnh SELECT TOP trong SQL được sử dụng để lấy ra N bản ghi hoặc X phần trăm bản ghi từ một bảng.
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]
Ví dụ
Giả sử bảng CUSTOMERS có các bản ghi sau:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ha Anh | 32 | Da Nang | 2000.00 |
| 2 | Van Ha | 25 | Ha Noi | 1500.00 |
| 3 | Vu Bang | 23 | Vinh | 2000.00 |
| 4 | Thu Minh | 25 | Ha Noi | 6500.00 |
| 5 | Hai An | 27 | Ha Noi | 8500.00 |
| 6 | Hoang | 22 | Ha Noi | 4500.00 |
| 7 | Binh | 24 | Ha Noi | 10000.00 |
+----+----------+-----+-----------+----------+
Truy vấn sau đây là một ví dụ trên máy chủ SQL, nó sẽ lấy ra 3 bản ghi hàng đầu từ bảng CUSTOMERS.
SELECT TOP 3 * FROM CUSTOMERS;
Điều này sẽ tạo ra kết quả sau:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ha Anh | 32 | Da Nang | 2000.00 |
| 2 | Van Ha | 25 | Ha Noi | 1500.00 |
| 3 | Vu Bang | 23 | Vinh | 2000.00 |
+----+----------+-----+-----------+----------+
Đối với máy chủ MySQL, dưới đây là một ví dụ tương đương:
SELECT * FROM CUSTOMERS
LIMIT 3;
Điều này sẽ tạo ra kết quả sau:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ha Anh | 32 | Da Nang | 2000.00 |
| 2 | Van Ha | 25 | Ha Noi | 1500.00 |
| 3 | Vu Bang | 23 | Vinh | 2000.00 |
+----+----------+-----+-----------+----------+
Đối với máy chủ Oracle, thì khối lệnh sau đây là một ví dụ tương đương.
SELECT * FROM CUSTOMERS
WHERE ROWNUM <= 3;
Điều này sẽ tạo ra kết quả sau:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ha Anh | 32 | Da Nang | 2000.00 |
| 2 | Van Ha | 25 | Ha Noi | 1500.00 |
| 3 | Vu Bang | 23 | Vinh | 2000.00 |
+----+----------+-----+-----------+----------+