פרדיקאטים של 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;

DISTINCT

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

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



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

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

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

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

×