Mệnh đề 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 | +----+----------+-----+-----------+----------+