פרדיקאטים של ALL,‏ DISTINCT,‏ DISTINCTROW,‏ TOP
Applies ToAccess של Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

מציין רשומות שנבחרו באמצעות שאילתות SQL.

תחביר

SELECT [ALL | ייחודית | DISTINCTROW | [TOP n [PERCENT]]]טבלת FROM

משפט SELECT המכיל את הקידומות הבאות כולל את החלקים הבאים:

חלק

תיאור

ALL

נניח שאם לא תכלול אחד מההתחומות. מנגנון מסד הנתונים של Microsoft Access בוחר את כל הרשומות המקיימות את התנאים במשפט SQL. שתי הדוגמאות הבאות שוות ערך ומחזירות את כל הרשומות מהטבלה Employees:

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

DISTINCT

השמטת רשומות המכילות נתונים כפולים בשדות שנבחרו. כדי להיכלל בתוצאות השאילתה, הערכים עבור כל שדה המפורט במשפט SELECT חייבים להיות ייחודיים. לדוגמה, לכמה עובדים המפורטים בטבלה 'עובדים' עשוי להיות שם משפחה זהה. אם שתי רשומות מכילות 'כהן' בשדה LastName, משפט ה- SQL הבא מחזיר רשומה אחת בלבד המכילה את 'כהן':

SELECT DISTINCT LastNameFROM Employees;

אם השמטת DISTINCT, שאילתה זו מחזירה את שתי הרשומות Smith.

אם משפט SELECT מכיל יותר משדה אחד, שילוב הערכים מכל השדות חייב להיות ייחודי כדי שהרשומות הנתונה ייכללו בתוצאות.

הפלט של שאילתה המשתמשת ב- DISTINCT אינו ניתן לעדכון והוא אינו משקף את השינויים הבאים שבוצעו על-ידי משתמשים אחרים.

DISTINCTROW

השמטת נתונים בהתבסס על רשומות כפולות שלמות, ולא רק שדות כפולים. לדוגמה, באפשרותך ליצור שאילתה שמצטרף לטבלאות Customers ו- Orders בשדה CustomerID. הטבלה Customers אינה מכילה שדות CustomerID כפולים, אך הטבלה Orders מכילה זאת מאחר שכל לקוח יכול לקבל הזמנות רבות. משפט ה- SQL הבא מראה כיצד ניתן להשתמש ב- DISTINCTROW כדי להפיק רשימה של חברות עם הזמנה אחת לפחות, אך ללא פרטים על הזמנות אלה:

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

אם אתה משמיט את DISTINCTROW, שאילתה זו מפיקה שורות מרובות עבור כל חברה המכילה יותר מפקודה אחת.

ל- DISTINCTROW יש השפעה רק בעת בחירת שדות מטבלאות מסוימות, אך לא כולן, המשמשות בשאילתה. הפונקציה מתעלמת מ- DISTINCTROW אם השאילתה שלך כוללת טבלה אחת בלבד, או אם אתה יוצר פלט של שדות מכל הטבלאות.

TOP n [PERCENT]

החזרת מספר מסוים של רשומות הקיימות בחלק העליון או התחתון של טווח שצוין על-ידי משפט ORDER BY. נניח שאתה מעוניין בשמות של 25 התלמידים המובילים מהכיתה של 1994:

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

אם לא תכלול את המשפט ORDER BY, השאילתה תחזיר ערכה שרירותית של 25 רשומות מהטבלה 'תלמידים' הממלאת את משפט WHERE.

ה- TOP Predicate אינו בוחר בין ערכים שווים. בדוגמה הקודמת, אם ממוצעי הציונים בציון ה- 25 וה-26 בגודלם זהים, השאילתה תחזיר 26 רשומות.

באפשרותך גם להשתמש במילה השמורה PERCENT כדי להחזיר אחוז מסוים של רשומות שמופיעות בחלק העליון או התחתון של טווח שצוין על-ידי משפט ORDER BY. נניח שב במקום 25 התלמידים המובילים, אתה מעוניין ב- 10 האחוזים למטה מהכיתה:

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

הפרדיקאט ASC מציין החזרה של ערכים תחתונים. הערך שמופיע אחרי TOP חייב להיות מספר שלם לא רשום.

TOP אינה משפיעה על האפשרות שהשאילתה ניתנת לעדכון או לא.

table

שם הטבלה שממנה מאחזרים רשומות.

זקוק לעזרה נוספת?

מעוניין באפשרויות נוספות?

גלה את יתרונות המנוי, עיין בקורסי הדרכה, למד כיצד לאבטח את המכשיר שלך ועוד.

קהילות עוזרות לך לשאול שאלות ולהשיב עליהן, לתת משוב ולשמוע ממומחים בעלי ידע עשיר.