المسندات ALL أو DISTINCT أو DISTINCTROW أو TOP

المسندات ALL أو DISTINCT أو DISTINCTROW أو TOP

تحديد السجلات المحددة باستخدام استعلامات SQL.

بناء الجملة

SELECT [all | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]
جدول FROM

تتضمن العبارة SELECT التي تحتوي على هذه التكريسات الأجزاء التالية:

الجزء

الوصف

ALL

يتم افتراض أنك إذا لم تتضمن إحدى التكريسات. يختار مشغل قاعدة بيانات Microsoft Access كل السجلات التي تفي بالشروط في بيان SQL. المثالان التاليان مكافئان ويعيدان كل السجلات من جدول "الموظفون":

SELECT ALL *
FROM Employees
ORDER BY EmployeeID;
SELECT *
FROM Employees
ORDER BY EmployeeID;

DISTINCT

حذف السجلات التي تحتوي على بيانات مكررة في الحقول المحددة. لتضمينها في نتائج الاستعلام، يجب أن تكون قيم كل حقل مدرج في العبارة SELECT فريدة. على سبيل المثال، قد يكون لعدة موظفين مدرجين في جدول "الموظفون" اسم العائلة نفسه. إذا احتوى سجلان على "سميث" في حقل "اسم الأخير"، فستعرض العبارة التالية SQL سجلا واحدا فقط يحتوي على باسم:

SELECT DISTINCT LastName
FROM Employees;

إذا تم حذف DISTINCT، يرجع هذا الاستعلام كلا من سجلات Smith.

إذا كانت عبارة SELECT تحتوي على أكثر من حقل واحد، فيجب أن تكون مجموعة القيم من كل الحقول فريدة لسجل معين لتضمينها في النتائج.

إخراج الاستعلام الذي يستخدم DISTINCT غير قابل للتحديث ولا يعكس التغييرات اللاحقة التي قام بها مستخدمون آخرون.

DISTINCTROW

تحذف البيانات استنادا إلى سجلات مكررة بالكامل، وليس فقط الحقول المكررة. على سبيل المثال، يمكنك إنشاء استعلام يقوم بضم جدولي "العملاء" و"الطلبات" في حقل "CustomerID". لا يحتوي جدول "العملاء" على حقول "CustomerID" مكررة، ولكن جدول "الطلبات" يتضمن ذلك لأنه يمكن أن يكون لكل عميل العديد من الطلبات. توضح بيان SQL التالي كيفية استخدام DISTINCTROW للحصول على قائمة الشركات التي لديها طلب واحد على الأقل ولكن دون أي تفاصيل حول هذه الطلبات:

SELECT DISTINCTROW CompanyName
FROM Customers INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER BY CompanyName;

إذا حذفت DISTINCTROW، ينتج عن هذا الاستعلام صفوف متعددة لكل شركة لديها أكثر من طلب واحد.

يكون لميزة DISTINCTROW تأثير فقط عند تحديد الحقول من بعض الجداول المستخدمة في الاستعلام وليس كلها. يتم تجاهل DISTINCTROW إذا كان الاستعلام يتضمن جدولا واحدا فقط، أو إذا قمت إخراج الحقول من كل الجداول.

TOP n [PERCENT]

إرجاع عدد معين من السجلات التي تقع في أعلى نطاق محدد بواسطة عبارة ORDER BY أو أسفله. لنفترض أنك تريد أسماء أفضل 25 طالبا من صف 1994:

SELECT TOP 25
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage DESC;

إذا لم تتضمن عبارة ORDER BY، سيرجع الاستعلام مجموعة عشوائية من 25 سجلا من جدول "الطلاب" تفي بعبارات WHERE.

لا تختار القيمة الأساسية TOP بين القيم المتساوية. في المثال السابق، إذا كان متوسط الدرجات الأعلى في الخامسة والعشرين والسادس والعشرين هو نفسه، سيرجع الاستعلام 26 سجلا.

يمكنك أيضا استخدام الكلمة المحجوزة PERCENT لإرجاع نسبة مئوية معينة من السجلات التي تقع في أعلى نطاق محدد بواسطة عبارة ORDER BY أو أسفله. لنفترض أنك، بدلا من أفضل 25 طالبا، تريد 10 في المئة من الصف السفلي:

SELECT TOP 10 PERCENT
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage ASC;

تحدد الخاصية "ASC" إرجاع القيم السفلى. يجب أن تكون القيمة التي تتبع TOP عدد صحيح غير موقع.

لا تؤثر TOP على ما إذا كان الاستعلام قابلا للتحديث أم لا.

table

اسم الجدول الذي يتم استرداد السجلات منه.



هل تحتاج إلى مزيد من المساعدة؟

تعزيز مهارات Office
استكشاف التدريب
الحصول على الميزات الجديدة أولاً
الانضمام إلى Office Insider

هل كانت المعلومات مفيدة؟

نشكرك على ملاحظاتك!

شكراً لك على الملاحظات! يبدو أنه من المفيد إيصالك بأحد وكلاء دعم Office لدينا.

×