Mệnh đề TOP, LIMIT, ROWNUM trong SQL
Mệnh đề TOP được sử dụng để lấy dữ liệu của TOP N số hoặc X phần trăm bản ghi từ một bảng.
Ghi chú: Tất cả Database không hỗ trợ mệnh đề TOP. Ví dụ, MySQL hỗ trợ mệnh đề LIMIT để lấy số bản ghi đã giới hạn và Oracle sử dụng ROWNUM để thực hiện cùng thao tác này.
Cú pháp
Cú pháp cơ bản của mệnh đề TOP với lệnh SELECT như sau:
SELECT TOP number|percent ten_cot FROM ten_bang WHERE [dieu_kien]
Ví dụ
Bảng SINHVIEN có các bản ghi sau:
+----+---------+-----+-----------+--------+ | ID | TEN | TUOI| KHOAHOC | HOCPHI | +----+---------+-----+-----------+---------+ | 1 | Hoang | 21 | CNTT | 4 | | 2 | Viet | 19 | DTVT | 3 | | 3 | Thanh | 18 | KTDN | 4 | | 4 | Nhan | 19 | CK | 4.5 | | 5 | Huong | 20 | TCNH | 5 | +----+---------+-----+-----------+---------+
Ví dụ sau trên SQL Server, sẽ lấy 2 bản ghi đầu tiên từ bảng này:
SQL> SELECT TOP 2 * FROM SINHVIEN;
Ví dụ trên sẽ cho kết quả:
+----+---------+-----+-----------+--------+ | ID | TEN | TUOI| KHOAHOC | HOCPHI | +----+---------+-----+-----------+---------+ | 1 | Hoang | 21 | CNTT | 4 | | 2 | Viet | 19 | DTVT | 3 | +----+---------+-----+-----------+---------+
Nếu bạn đang sử dụng MySQL Server, thì đây là một ví dụ tương đương:
SQL> SELECT * FROM SINHVIEN LIMIT 2;
Ví dụ trên sẽ cho kết quả:
+----+---------+-----+-----------+--------+ | ID | TEN | TUOI| KHOAHOC | HOCPHI | +----+---------+-----+-----------+---------+ | 1 | Hoang | 21 | CNTT | 4 | | 2 | Viet | 19 | DTVT | 3 | +----+---------+-----+-----------+---------+
Nếu bạn đang sử dụng Oracle Server, thì đây là một ví dụ tương đương:
SQL> SELECT * FROM SINHVIEN WHERE ROWNUM <= 2;
Ví dụ trên sẽ cho kết quả:
+----+---------+-----+-----------+--------+ | ID | TEN | TUOI| KHOAHOC | HOCPHI | +----+---------+-----+-----------+---------+ | 1 | Hoang | 21 | CNTT | 4 | | 2 | Viet | 19 | DTVT | 3 | +----+---------+-----+-----------+---------+