SQL TOP, LIMIT, FETCH FIRST or ROWNUM Clause


The SQL SELECT TOP Clause

SELECT TOP เป็นคำสั่งใช้เพื่อระบุจำนวนเรคคอร์ดที่จะดูค่านั้น มีประโยชน์ในตารางขนาดใหญ่ที่มีข้อมูลหลายพันรายการ การส่งคืนเรกคอร์ดจำนวนมากอาจส่งผลต่อประสิทธิภาพการทำงาน

หมายเหตุ:ไม่ใช่ทุกระบบฐานข้อมูลจะรองรับ SELECT TOPส่วนคำสั่ง นี้ MySQL รองรับLIMITส่วนคำสั่งในการเลือกบันทึกจำนวนจำกัด ในขณะที่ Oracle ใช้และ. FETCH FIRST n ROWS ONLY และ ROWNUM

SQL Server / MS Access Syntax:

SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;

MySQL Syntax:

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;

Oracle 12 Syntax:

SELECT column_name(s)
FROM table_name
ORDER BY column_name(s)
FETCH FIRST number ROWS ONLY;

Older Oracle Syntax:

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;

Older Oracle Syntax (with ORDER BY):

SELECT *
FROM (SELECT column_name(s) FROM table_name ORDER BY column_name(s))
WHERE ROWNUM <= number;


Demo Database

ด้านล่างนี้คือการเลือกจากตาราง Customers ที่ใช้ในตัวอย่าง:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1
Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4
Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden


ตัวอย่าง SQL TOP, LIMIT and FETCH FIRST

คำสั่ง SQL ต่อไปนี้จะเลือกสามเรคคอร์ดแรกจากตาราง “Customers” (สำหรับ SQL Server/MS Access):

ตัวอย่าง

SELECT TOP 3 * FROM Customers;

คุณสามารถดูตัวอย่างนี้ได้ได้ที่ w3school

คำสั่ง SQL ต่อไปนี้แสดงตัวอย่างที่เทียบเท่าสำหรับ MySQL:

ตัวอย่าง

SELECT * FROM Customers
LIMIT 3;

คุณสามารถดูตัวอย่างนี้ได้ได้ที่ w3school

คำสั่ง SQL ต่อไปนี้แสดงตัวอย่างที่เทียบเท่าสำหรับ Oracle:

ตัวอย่าง

SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;


ตัวอย่าง SQL TOP PERCENT

คำสั่ง SQL ต่อไปนี้จะเลือก 50% แรกของเรคคอร์ดจากตาราง “Customers” (สำหรับ SQL Server/MS Access):

ตัวอย่าง

SELECT TOP 50 PERCENT * FROM Customers;

คุณสามารถดูตัวอย่างนี้ได้ได้ที่ w3school

คำสั่ง SQL ต่อไปนี้แสดงตัวอย่างที่เทียบเท่าสำหรับ Oracle:

ตัวอย่าง

SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;


การเพิ่ม WHERE CLAUSE

คำสั่ง SQL ต่อไปนี้จะเลือกสามระเบียนแรกจากตาราง “Customers” โดยที่ประเทศคือ “Germany” (สำหรับ SQL Server/MS Access):

ตัวอย่าง

SELECT TOP 3 * FROM Customers
WHERE Country='Germany';

คุณสามารถดูตัวอย่างนี้ได้ได้ที่ w3school

คำสั่ง SQL ต่อไปนี้แสดงตัวอย่างที่เทียบเท่าสำหรับ MySQL:

ตัวอย่าง

SELECT * FROM Customers
WHERE Country='Germany'
LIMIT 3;

คุณสามารถดูตัวอย่างนี้ได้ได้ที่ w3school

คำสั่ง SQL ต่อไปนี้แสดงตัวอย่างที่เทียบเท่าสำหรับ Oracle:

ตัวอย่าง

SELECT * FROM Customers
WHERE Country='Germany'
FETCH FIRST 3 ROWS ONLY;