SQL การใช้งาน SELECT TOP Clause

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

รูปแบบการใช้งานพื้นฐานของ SELECT TOP

SELECT TOP (จำนวน) column1, column2, ...
FROM ชื่อตาราง;

ในบางระบบฐานข้อมูล เช่น SQL Server เราสามารถใช้คำสั่ง TOP ร่วมกับ % เพื่อดึงข้อมูลในรูปแบบเปอร์เซ็นต์ได้อีกด้วย เช่น

SQL
SELECT TOP (10) PERCENT คอลัมน์
FROM ชื่อตาราง;

ตัวอย่างการใช้งาน SELECT TOP Clause

สมมติว่าเรามีตาราง Employees ที่มีข้อมูลดังนี้

สร้างตารางใน MS SQL Server

SQL
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 คนแรก

SQL
SELECT TOP (3) EmployeeID, FirstName, LastName, Salary
FROM Employees;

ผลลัพธ์ที่ได้

การดึงข้อมูลตามเปอร์เซ็นต์

หากต้องการดึงข้อมูลพนักงาน 40% แรกของตาราง

SQL
SELECT TOP (40) PERCENT EmployeeID, FirstName, LastName, Salary
FROM Employees;

ผลลัพธ์ที่ได้ (สมมติว่าข้อมูลมี 5 แถว จะดึง 2 แถวแรก เนื่องจาก 40% ของ 5 = 2 แถว)

การดึงข้อมูลโดยเรียงลำดับก่อน

หากเราต้องการดึงข้อมูล 2 คนแรกที่มีเงินเดือนสูงสุด เราจะต้องใช้คำสั่ง ORDER BY ร่วมกับ SELECT TOP ดังนี้

SQL
SELECT TOP (2) EmployeeID, FirstName, LastName, Salary
FROM Employees
ORDER BY Salary DESC;

ผลลัพธ์ที่ได้

การประยุกต์ใช้ร่วมกับ WHERE Clause

สามารถใช้ TOP ร่วมกับ WHERE ได้เช่นกัน เช่นดึงข้อมูลพนักงาน 1 คนที่มีเงินเดือนมากกว่า 50,000 บาท

SQL
SELECT TOP (1) EmployeeID, FirstName, LastName, Salary
FROM Employees
WHERE Salary > 50000
ORDER BY Salary DESC;

ผลลัพธ์ที่ได้

สรุป

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

แชร์เรื่องนี้