Tóm tắt
SQL Server không hỗ trợ LIMIT, thay vào đó dùng TOP (n) ngay sau SELECT.
So sánh cú pháp
| MySQL | SQL Server |
|---|---|
SELECT * FROM bang LIMIT 10 | SELECT TOP(10) * FROM bang |
SELECT * FROM bang LIMIT 5, 10 (offset 5, lấy 10) | SELECT * FROM bang ORDER BY cot OFFSET 5 ROWS FETCH NEXT 10 ROWS ONLY (SQL Server 2012+) |
Ví dụ
1. Tạo bảng và dữ liệu (SQL Server)
CREATE TABLE TopDemoInSQLServer (
Id INT,
Name VARCHAR(10)
);
INSERT INTO TopDemoInSQLServer VALUES
(10,'John'), (14,'Carol'), (1,'Sam'), (11,'Bob'), (18,'David'), (20,'Sam');
2. Lấy 1 hàng có Name = 'Carol'
SELECT TOP(1) * FROM TopDemoInSQLServer WHERE Name = 'Carol';
3. Kết quả
Id Name
14 Carol
Lưu ý
TOPkhông hỗ trợ OFFSET trước 2012 – phải dùngROW_NUMBER()trong subquery.- Luôn dùng
ORDER BYvớiTOPnếu cần kết quả xác định (trừ khi không quan tâm thứ tự). TOP (n) PERCENTlấy phần trăm hàng.TOP (n) WITH TIESbao gồm các hàng đồng hạng với hàng cuối.