SELECT TOP ใช้ทำอะไร?
จำกัดจำนวนแถวที่คืนผลลัพธ์ โดยระบุเป็น จำนวนคงที่ หรือ เปอร์เซ็นต์
รูปแบบคำสั่ง
SELECT TOP (n) [PERCENT] [WITH TIES]
column_list
FROM table_name
[WHERE condition]
[ORDER BY column [ASC | DESC]];
ตัวเลือก
TOP (n): จำนวนแถวแรกที่ต้องการ (เช่น TOP (10))PERCENT: เปอร์เซ็นต์ของผลลัพธ์ทั้งหมด (เช่น TOP (10) PERCENT = 10%)WITH TIES: รวมแถวที่มีค่า ORDER BY เท่ากับแถวสุดท้าย (อาจได้มากกว่า n)ORDER BY: จำเป็น หากต้องการผลลัพธ์ที่ deterministic (TOP ไม่มี ORDER BY จะสุ่ม)
ตัวอย่าง
1. TOP แบบคงที่
SELECT TOP (5) nhanvien_id, ho, ten
FROM nhanvien
WHERE ho = 'Anderson'
ORDER BY nhanvien_id;
คืน 5 แถวแรกที่เรียงตาม ID
2. TOP WITH TIES
SELECT TOP (5) WITH TIES nhanvien_id, ho, ten
FROM nhanvien
WHERE ho = 'Anderson'
ORDER BY nhanvien_id;
ถ้าแถวที่ 5 และ 6 มี ID เท่ากัน จะคืนทั้งคู่ (อาจได้ 6 แถว)
3. TOP PERCENT
SELECT TOP (10) PERCENT nhanvien_id, ho, ten
FROM nhanvien
WHERE ho = 'Anderson'
ORDER BY nhanvien_id;
คืน 10% ของแถวที่ match
4. TOP PERCENT WITH TIES
SELECT TOP (10) PERCENT WITH TIES nhanvien_id, ho, ten
FROM nhanvien
WHERE ho = 'Anderson'
ORDER BY nhanvien_id;
รวม ties ที่ขอบเขต 10%
หมายเหตุ: ใช้ TOP กับ INSERT, UPDATE, DELETE ได้เช่นกัน (DELETE TOP, UPDATE TOP)