ใน SQL Server คำสั่ง SELECT TOP ใช้เพื่อดึงข้อมูลระเบียนจากตารางอย่างน้อยหนึ่งตารางใน SQL Server และจำกัดจำนวนระเบียนส่งคืนตามค่าคงที่หรือเปอร์เซ็นต์
ไวยากรณ์ SELECT TOP คำสั่ง
SELECT TOP (giatri_dau) [PERCENT] [WITH TIES]
bieu_thuc
FROM bang
[WHERE dieu_kien]
[ORDER BY bieu_thuc [ ASC | DESC ]];
ชื่อตัวแปรหรือค่าตัวแปร
TOP (giatri_dau)
ส่งคืนผลลัพธ์ตาม giatri_dau ตัวอย่างเช่น TOP (10) จะแทรก 10 แถวแรกจากชุดผลลัพธ์
PERCENT
ตัวเลือก หากระบุไว้ แถวแรกจะอิงตามเปอร์เซ็นต์ของ giatri_dau ของชุดผลลัพธ์ ตัวอย่างเช่น TOP (10) PERCENT จะแทรก 10% ของค่าแรกในชุดผลลัพธ์
มีความสัมพันธ์
ตัวเลือก หากมีการใช้อนุประโยคนี้ แถวที่มีค่าเท่ากับแถวสุดท้ายในชุดผลลัพธ์จะถูกส่งกลับ ซึ่งอาจส่งผลให้จำนวนแถวที่ส่งคืนมากกว่าการอนุญาต TOP
bieu_thuc
ควรดึงข้อมูลคอลัมน์หรือค่าที่คำนวณได้
ระบุ
Table ต้องการรับระเบียนจากที่นั่น ต้องมีอย่างน้อย 1 ตารางในส่วนคำสั่ง FROM
WHERE dieu_kien
ตัวเลือก ต้องเป็นไปตามเงื่อนไขจึงจะเลือกบันทึกได้
เรียงลำดับตาม bieu_thuc
ตัวเลือก ใช้สั่งผล ASC เรียงลำดับจากน้อยไปมาก DESC เรียงลำดับจากมากไปน้อย
ตัวอย่างเช่น - ใช้คำหลัก TOP
SELECT TOP(5)
nhanvien_id, ho, ten
FROM nhanvien
WHERE ho = 'Anderson'
ORDER BY nh
anvien_id;
ตัวอย่างด้านบนจะดึงข้อมูล 5 รายการแรกในตารางเมื่อนามสกุลคือ Anderson หากระเบียนอื่นมีนามสกุลของ Anderson ด้วย จะไม่ส่งคืนในคำสั่ง SELECT
ตัวอย่างข้างต้นสามารถแก้ไขได้เล็กน้อยโดยเพิ่มคำสั่ง WITH TIES
SELECT TOP (5) WITH TIES
nhanvien_id, ho, ten
FROM nhanvien
WHERE ho = 'Anderson'
ORDER BY nhanv
ien_id;
ตัวอย่างนี้จะคืนค่าแถวเดียวกันกับแถวสุดท้ายในชุดผลลัพธ์
ตัวอย่างเช่น - ใช้คำหลัก TOP PERCENT
SELECT TOP(10) PERCENT
nhanvien_id, ho, ten
FROM nhanvien
WHERE ho = 'Anderson'
ORDER B
Y nhanvien_id;
ตัวอย่างนี้จะส่งคืนชุดผลลัพธ์ 10% แรกที่บันทึกไว้ในตารางพนักงานในหมู่พนักงานที่มีนามสกุลคือ Anderson ส่วนที่เหลือ 90% จะไม่ถูกส่งคืน
SELECT TOP(10) PERCENT WITH TIES
nhanvien_id, ho, ten
FROM nhanvien
WHERE ho = 'Anderson'
ORDER BY nha
dentist_id;
เมื่อใช้ WITH TIES ผลลัพธ์ที่ได้จะมีแถวเดียวกับแถวสุดท้ายในชุดผลลัพธ์ ชุดผลลัพธ์จะมากกว่า 10%