דלג לתוכן הראשי
היכנס דרך Microsoft
היכנס או צור חשבון.
שלום,
בחר חשבון אחר.
יש לך חשבונות מרובים
בחר את החשבון שברצונך להיכנס באמצעותו.
פרדיקאטים של ALL,‏ DISTINCT,‏ DISTINCTROW,‏ TOP

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

תחביר

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

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

חלק

תיאור

ALL

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

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

DISTINCT

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

SELECT DISTINCT LastName
FROM Employees;

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

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

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

DISTINCTROW

השמטת נתונים בהתבסס על רשומות כפולות שלמות, ולא רק שדות כפולים. לדוגמה, באפשרותך ליצור שאילתה שמצטרף לטבלאות Customers ו- Orders בשדה CustomerID. הטבלה Customers אינה מכילה שדות CustomerID כפולים, אך הטבלה Orders מכילה זאת מאחר שכל לקוח יכול לקבל הזמנות רבות. משפט ה- 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 Predicate אינו בוחר בין ערכים שווים. בדוגמה הקודמת, אם ממוצעי הציונים בציון ה- 25 וה-26 בגודלם זהים, השאילתה תחזיר 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

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



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

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

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

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

האם מידע זה היה שימושי?

עד כמה אתם מרוצים מאיכות השפה?
מה השפיע על החוויה שלך?
בלחיצה על 'שלח', אתה מאפשר למשוב שלך לשפר מוצרים ושירותים של Microsoft. מנהל ה-IT שלך יוכל לאסוף נתונים אלה. הצהרת הפרטיות.

תודה על המשוב!

×