ภาพรวม
Microsoft Access (Jet/ACE SQL) ไม่มีคำสั่ง LIMIT ใช้ TOP แทน วางหลัง SELECT
เปรียบเทียบ
| Database | Syntax | ตัวอย่าง |
|---|---|---|
| MySQL | LIMIT n | SELECT * FROM t LIMIT 5 |
| Access | TOP n | SELECT TOP 5 * FROM t |
| SQL Server | TOP n | SELECT TOP 5 * FROM t |
| Oracle (12c+) | FETCH FIRST n ROWS | SELECT * FROM t FETCH FIRST 5 ROWS ONLY |
| PostgreSQL | LIMIT n | SELECT * FROM t LIMIT 5 |
ตัวอย่างใน Access
1. สร้างตาราง (ผ่าน GUI หรือ SQL)

2. เพิ่มข้อมูล

3. Query ด้วย TOP 5
SELECT TOP 5 * FROM TableName;

4. ผลลัพธ์

ตัวเลือกเพิ่มเติมของ TOP
-- TOP n PERCENT (เปอร์เซ็นต์)
SELECT TOP 10 PERCENT * FROM TableName;
-- TOP n WITH TIES (รวมค่าที่เท่ากันกับแถวสุดท้าย)
SELECT TOP 5 WITH TIES * FROM TableName ORDER BY Score DESC;
MySQL: LIMIT + OFFSET (Pagination)
-- หน้าที่ 1 (แถว 1-10)
SELECT * FROM TableName LIMIT 10 OFFSET 0;
-- หรือ
SELECT * FROM TableName LIMIT 0, 10;
-- หน้าที่ 2 (แถว 11-20)
SELECT * FROM TableName LIMIT 10 OFFSET 10;
-- หรือ
SELECT * FROM TableName LIMIT 10, 10;
Access: การทำ Pagination (ซับซ้อนกว่า)
Access ไม่มี OFFSET ต้องใช้ Subquery:
-- หน้าที่ 2 (ข้าม 10 แถว แล้วเอา 10 แถว)
SELECT TOP 10 * FROM TableName
WHERE Id NOT IN (
SELECT TOP 10 Id FROM TableName ORDER BY Id
)
ORDER BY Id;
สรุป
MySQL: LIMIT n [OFFSET m]
Access / SQL Server: TOP n (วางหลัง SELECT) - ไม่มี OFFSET ต้องใช้ Subquery