Applies ToAccess של Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

שאילתת משנה היא משפט SELECT המקונן בתוך SELECT, SELECT... INTO, INSERT... משפט INTO, DELETE או UPDATE או בתוך שאילתת משנה אחרת.

תחביר

באפשרותך להשתמש בשלוש צורות של תחביר כדי ליצור שאילתת משנה:

השוואה [ ANY | כל ה | SOME] (sqlstatement)

ביטוי [NOT] IN (sqlstatement)

[NOT] אני לא יכול לעשות את זה. EXISTS (sqlstatement)

שאילתת משנה כוללת את החלקים הבאים:

חלק

תיאור

השוואה

שדה ביטוי אופרטור השוואה המשווה את הביטוי לתוצאות של שאילתת המשנה.

ביטוי

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

sqlstatement

משפט SELECT, בהתאם לאותה תבנית וכללים כמו כל משפט SELECT אחר. עליו להיות מוקף בסוגריים.

הערות

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

השתמש בפרדיקאט ANY או SOME, שהוא מילה נרדפת, כדי לאחזר רשומות בשאילתה הראשית הממלאות את ההשוואה עם כל הרשומות המאוחזרות בשאילתת המשנה. הדוגמה הבאה מחזירה את כל המוצרים שמחיר היחידה שלהם גדול מזה של כל מוצר שנמכר בהנחה של 25 אחוזים או יותר:

SELECT * FROM Products WHERE UnitPrice > ANY (SELECT UnitPrice FROM OrderDetails WHERE Discount >= .25);

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

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

SELECT * FROM Products WHERE ProductID IN (SELECT ProductID FROM OrderDetails WHERE Discount >= .25);

לעומת זאת, באפשרותך להשתמש ב- NOT IN כדי לאחזר רק את הרשומות בשאילתה הראשית שעבורן אף רשומה בשאילתת המשנה אינה מכילה ערך שווה.

השתמש בפדיקאט EXISTS (עם המילה האופציונלית NOT השמורה) בהשוואות True/False כדי לקבוע אם שאילתת המשנה מחזירה רשומות כלשהן.

באפשרותך גם להשתמש בכינויי שם טבלה בשאילתת משנה כדי להפנות לטבלאות המפורטות בפסוקית FROM מחוץ לש שאילתת המשנה. הדוגמה הבאה מחזירה את שמות העובדים שהשכר שלהם שווה למשכורת הממוצעת של כל העובדים בעלי אותה תפקיד או גבוה יותר. הטבלה Employees תינתן בכינוי "T1":

SELECT LastName, FirstName, Title, Salary FROM Employees AS T1 WHERE Salary >= (SELECT Avg(Salary) FROM Employees WHERE T1.Title = Employees.Title) Order by Title;

בדוגמה הקודמת, הנוסחה AS מילה שמורה היא אופציונלית.

שאילתות משנה מסוימות מותרות בשאילתות הצלבות - באופן ספציפי, כסדיקאטים (אלה הקיימים במשפט WHERE). שאילתות משנה כפלט (שאילתות ברשימה SELECT) אינן מותרות בשאילתות הצלבות.

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

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

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