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

שאילתת משנה היא משפט 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) אינן מותרות בשאילתות הצלבות.



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

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

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

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

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

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

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

×