SELECT TOP เป็นคำสั่งใน SQL ที่ใช้ในการดึงข้อมูลจำนวนแถวที่จำกัดจากตาราง เช่น ดึงข้อมูลเฉพาะแถวแรกๆ หรือแถวที่มากที่สุด โดยรูปแบบการใช้งานหลักๆ คือการระบุจำนวนแถวที่ต้องการให้อยู่ในผลลัพธ์ของคำสั่ง SELECT
รูปแบบการใช้งานพื้นฐานของ SELECT TOP
SELECT TOP (จำนวน) column1, column2, ...
FROM ชื่อตาราง;
ในบางระบบฐานข้อมูล เช่น SQL Server เราสามารถใช้คำสั่ง TOP ร่วมกับ % เพื่อดึงข้อมูลในรูปแบบเปอร์เซ็นต์ได้อีกด้วย เช่น
SELECT TOP (10) PERCENT คอลัมน์
FROM ชื่อตาราง;ตัวอย่างการใช้งาน SELECT TOP Clause
สมมติว่าเรามีตาราง Employees ที่มีข้อมูลดังนี้
สร้างตารางใน MS SQL Server
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
FirstName NVARCHAR(50),
LastName NVARCHAR(50),
Salary DECIMAL(18, 2)
);
INSERT INTO Employees (EmployeeID, FirstName, LastName, Salary)
VALUES
(1, 'John', 'Doe', 50000),
(2, 'Jane', 'Smith', 60000),
(3, 'Michael', 'Brown', 70000),
(4, 'Lisa', 'Davis', 55000),
(5, 'Linda', 'Johnson', 45000);
การดึงข้อมูลตามจำนวนแถวที่ระบุ
ถ้าต้องการดึงข้อมูลพนักงาน 3 คนแรก
SELECT TOP (3) EmployeeID, FirstName, LastName, Salary
FROM Employees;ผลลัพธ์ที่ได้

การดึงข้อมูลตามเปอร์เซ็นต์
หากต้องการดึงข้อมูลพนักงาน 40% แรกของตาราง
SELECT TOP (40) PERCENT EmployeeID, FirstName, LastName, Salary
FROM Employees;ผลลัพธ์ที่ได้ (สมมติว่าข้อมูลมี 5 แถว จะดึง 2 แถวแรก เนื่องจาก 40% ของ 5 = 2 แถว)

การดึงข้อมูลโดยเรียงลำดับก่อน
หากเราต้องการดึงข้อมูล 2 คนแรกที่มีเงินเดือนสูงสุด เราจะต้องใช้คำสั่ง ORDER BY ร่วมกับ SELECT TOP ดังนี้
SELECT TOP (2) EmployeeID, FirstName, LastName, Salary
FROM Employees
ORDER BY Salary DESC;ผลลัพธ์ที่ได้

การประยุกต์ใช้ร่วมกับ WHERE Clause
สามารถใช้ TOP ร่วมกับ WHERE ได้เช่นกัน เช่นดึงข้อมูลพนักงาน 1 คนที่มีเงินเดือนมากกว่า 50,000 บาท
SELECT TOP (1) EmployeeID, FirstName, LastName, Salary
FROM Employees
WHERE Salary > 50000
ORDER BY Salary DESC;ผลลัพธ์ที่ได้

สรุป
SELECT TOP เป็นเครื่องมือที่มีประโยชน์ในการจำกัดจำนวนผลลัพธ์ของการ query โดยสามารถใช้งานร่วมกับเงื่อนไขต่าง ๆ และคำสั่ง ORDER BY เพื่อดึงข้อมูลที่เฉพาะเจาะจงตามที่เราต้องการ
