Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

ระบุระเบียนที่เลือกด้วยคิวรี SQL

ไวยากรณ์

เลือก [ทั้งหมด | ทั้งหมด' DISTINCT | DISTINCTROW | [ด้านบน n [เปอร์เซ็นต์]]]ตาราง FROM

คําสั่ง SELECT ที่มีเพรดิเคตเหล่านี้มีส่วนต่างๆ ดังนี้:

ส่วน

คำอธิบาย

ALL

สมมติว่าถ้าคุณไม่มีเพรดิเคตตัวใดตัวหนึ่ง กลไกจัดการฐานข้อมูลของ Microsoft Access จะเลือกระเบียนทั้งหมดที่ตรงกับเงื่อนไขในคําสั่ง SQL สองตัวอย่างต่อไปนี้เทียบเท่ากันและส่งกลับระเบียนทั้งหมดจากตาราง Employees:

SELECT ALL *FROM EmployeesORDER BY EmployeeID;
SELECT *FROM EmployeesORDER BY EmployeeID;

DISTINCT

ละเว้นระเบียนที่มีข้อมูลที่ซ้ํากันในเขตข้อมูลที่เลือก เมื่อต้องการรวมไว้ในผลลัพธ์ของคิวรี ค่าสําหรับแต่ละเขตข้อมูลที่แสดงอยู่ในคําสั่ง SELECT ต้องไม่ซ้ํากัน ตัวอย่างเช่น พนักงานหลายคนที่แสดงอยู่ในตาราง Employees อาจมีนามสกุลเหมือนกันได้ ถ้าสองระเบียนมี Smith ในเขตข้อมูล LastName คําสั่ง SQL ต่อไปนี้จะส่งกลับระเบียนที่มี Smith เพียงระเบียนเดียว:

SELECT DISTINCT LastNameFROM Employees;

ถ้าคุณละ DISTINCT คิวรีนี้จะส่งกลับระเบียน Smith ทั้งสองระเบียน

ถ้าส่วนคําสั่ง SELECT มีเขตข้อมูลมากกว่าหนึ่งเขตข้อมูล การผสมค่าจากเขตข้อมูลทั้งหมดจะต้องไม่ซ้ํากันสําหรับระเบียนที่กําหนดให้รวมอยู่ในผลลัพธ์

ผลลัพธ์ของคิวรีที่ใช้ DISTINCT ไม่สามารถอัปเดตได้และจะไม่แสดงการเปลี่ยนแปลงที่ตามมาที่ทําโดยผู้ใช้อื่น

DISTINCTROW

ละเว้นข้อมูลโดยยึดตามระเบียนที่ซ้ํากันทั้งหมด ไม่ใช่เฉพาะเขตข้อมูลที่ซ้ํากัน ตัวอย่างเช่น คุณสามารถสร้างคิวรีที่รวมตารางลูกค้าและตารางใบสั่งซื้อบนเขตข้อมูล CustomerID ตารางลูกค้าไม่มีเขตข้อมูลรหัสลูกค้าที่ซ้ํากัน แต่ตารางใบสั่งซื้อมีเพราะลูกค้าแต่ละรายสามารถมีใบสั่งซื้อได้หลายใบ คําสั่ง SQL ต่อไปนี้แสดงวิธีที่คุณสามารถใช้ DISTINCTROW เพื่อสร้างรายชื่อของบริษัทที่มีคําสั่งซื้ออย่างน้อยหนึ่งรายการ แต่ไม่มีรายละเอียดใดๆ เกี่ยวกับใบสั่งเหล่านั้น:

SELECT DISTINCTROW CompanyNameFROM Customers INNER JOIN OrdersON Customers.CustomerID = Orders.CustomerIDORDER BY CompanyName;

ถ้าคุณละ DISTINCTROW คิวรีนี้จะสร้างแถวหลายแถวสําหรับแต่ละบริษัทที่มีมากกว่าหนึ่งคําสั่งซื้อ

DISTINCTROW จะมีผลเฉพาะเมื่อคุณเลือกเขตข้อมูลจากบางเขตข้อมูล แต่ไม่ใช่ทั้งหมด ตารางที่ใช้ในคิวรี DISTINCTROW จะถูกละเว้น ถ้าคิวรีของคุณมีเพียงหนึ่งตาราง หรือถ้าคุณแสดงผลเขตข้อมูลจากตารางทั้งหมด

N อันดับแรก [เปอร์เซ็นต์]

ส่งกลับระเบียนจํานวนหนึ่งที่อยู่ด้านบนหรือด้านล่างของช่วงที่ระบุโดยส่วนคําสั่ง ORDER BY สมมติว่าคุณต้องการชื่อของนักเรียน 25 อันดับแรกจากชั้นเรียนของปี 1994:

SELECT TOP 25FirstName, LastNameFROM StudentsWHERE GraduationYear = 2003ORDER BY GradePointAverage DESC;

ถ้าคุณไม่รวมส่วนคําสั่ง ORDER BY คิวรีจะส่งกลับชุดระเบียนที่กําหนดโดยพลการ 25 ระเบียนจากตาราง Students ที่ตรงกับส่วนคําสั่ง WHERE

เพรดิเคต TOP ไม่ได้เลือกระหว่างค่าที่เท่ากัน ในตัวอย่างก่อนหน้า ถ้าค่าเฉลี่ยคะแนนสูงสุดยี่สิบห้าและยี่สิบหกเหมือนกัน คิวรีจะส่งกลับระเบียน 26 ระเบียน

คุณยังสามารถใช้คําสงวน PERCENT เพื่อส่งกลับเปอร์เซ็นต์ของระเบียนที่อยู่ที่ด้านบนหรือด้านล่างของช่วงที่ระบุโดยส่วนคําสั่ง ORDER BY สมมติว่า แทนที่จะเป็นนักเรียน 25 คนแรก คุณต้องการ 10 เปอร์เซ็นต์ล่างสุดของชั้นเรียน:

SELECT TOP 10 PERCENTFirstName, LastNameFROM StudentsWHERE GraduationYear = 2003ORDER BY GradePointAverage ASC;

เพรดิเคต ASC ระบุการส่งกลับค่าด้านล่าง ค่าที่ตามหลัง TOP ต้องเป็นจํานวนเต็มที่ไม่มีลายเซ็น

ฟังก์ชัน TOP จะไม่มีผลต่อคิวรีที่สามารถอัปเดตได้หรือไม่

table

ชื่อของตารางที่ระเบียนถูกดึงออกมา

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย