http://vietjack.com/sql/index.jsp Copyright © vietjack.com http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 Mệnh đề TOP, LIMIT, ROWNUM trong SQL Mệnh đề TOP được s
Trang 1http://vietjack.com/sql/index.jsp Copyright © vietjack.com
http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1
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 |
Trang 2http://vietjack.com/sql/index.jsp Copyright © vietjack.com
http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 2
+ + -+ -+ -+ -+
| 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 <= ;
Ví dụ trên sẽ cho kết quả:
+ + -+ -+ -+ -+
| ID | TEN | TUOI | KHOAHOC | HOCPHI |
+ + -+ -+ -+ -+
| 1 | Hoang | 21 CNTT | 4 |
| 2 | Viet | 19 DTVT | 3 |
+ + -+ -+ -+ -+