פרדיקאטים של ALL,‏ DISTINCT,‏ DISTINCTROW,‏ TOP

פרדיקאטים של ALL,‏ DISTINCT,‏ DISTINCTROW,‏ TOP

חשוב: מאמר זה תורגם בתרגום מכונה, ראה כתב ויתור. תוכל למצוא את הגרסה באנגלית של המאמר כאן לעיונך.

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

תחביר

בחר [כל | ייחודית | DISTINCTROW | [העליון n [אחוז]]]
מטבלה

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

חלק

תיאור

ALL

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

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

ייחודית

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

SELECT DISTINCT LastName
FROM Employees;

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

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

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

DISTINCTROW

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

לראש הדף n [אחוז]

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

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

אם לא תכלול את פסוקית ORDER BY, השאילתה תחזיר קבוצה שרירותית של 25 רשומות מהטבלה Students אשר הפסוקית where.

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

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

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

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

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

table

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



הערה: כתב ויתור בנוגע לתרגום מכונה: מאמר זה תורגם על-ידי מערכת מחשב, ללא התערבות אדם. Microsoft מציעה את תרגומי המכונה כדי לסייע למשתמשים שאינם דוברי אנגלית ליהנות מתוכן בנושא מוצרים, שירותים וטכנולוגיות של Microsoft. מכיוון שהמאמר תורגם על-ידי מכונה, הוא עלול להכיל שגיאות באוצר המילים, בתחביר או בדקדוק.

הרחב את הכישורים שלך
סייר בהדרכה
קבל תכונות חדשות לפני כולם
הצטרף למשתתפי Office Insider

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

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

תודה על המשוב! נראה שכדאי לקשר אותך לאחד מנציגי התמיכה של Office.

×