Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Chuyển đổi LIMIT MySQL sang TOP trong SQL Server

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

MySQLSQL Server
SELECT * FROM bang LIMIT 10SELECT 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 ý

  • TOP không hỗ trợ OFFSET trước 2012 – phải dùng ROW_NUMBER() trong subquery.
  • Luôn dùng ORDER BY với TOP nếu cần kết quả xác định (trừ khi không quan tâm thứ tự).
  • TOP (n) PERCENT lấy phần trăm hàng.
  • TOP (n) WITH TIES bao gồm các hàng đồng hạng với hàng cuối.