Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL Server

คำสั่ง SELECT TOP ใน SQL Server

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

ไวยากรณ์ SELECT TOP คำสั่ง

  SELECT TOP (giatri_dau) [PERCENT] [WIT H 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 TO P(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

  SELEC T TOP(10) PERCENT 
nhanvien_id, ho, ten
FROM nhanvien
WHERE ho = 'Anderson'
ORDER B Y nhanvien_id;

ตัวอย่างนี้จะส่งคืนชุดผลลัพธ์ 10% แรกที่บันทึกไว้ในตารางพนักงานในหมู่พนักงานที่มีนามสกุลคือ Anderson ส่วนที่เหลือ 90% จะไม่ถูกส่งคืน

  SELECT TO P(10) PERCENT WITH TIES 
nhanvien_id, ho, ten
FROM nhanvien
WHERE ho = 'Anderson'
ORDER BY nha dentist_id;

เมื่อใช้ WITH TIES ผลลัพธ์ที่ได้จะมีแถวเดียวกับแถวสุดท้ายในชุดผลลัพธ์ ชุดผลลัพธ์จะมากกว่า 10%