מדריך SQL זה מתמקד בפקודותת AND ו – OR אשר מאפשרות שילוב תנאים. מדריך זה הינו חלק מרשימת פוסטים הנוגעים לפקודת ה WHERE ב SQL SERVER. כדי להגיע לפוסטים הנוספים ניתן להעזר בקישורים הבאים :
- הקדמה – מבנה משפט WHERE
- תנאי השוואה פשוטים
- תנאי השוואה מורכבים
- פקודות AND ו – OR
האופרטורים AND ו– OR
מטרת אופרטורים אלו היא לאפשר לנו לבצע סינון על סמך מספר רב של תנאים, לדוגמא :
שם העובד |
שכר |
מספר מחלקה |
חיה |
10000 |
90 |
דוד |
9000 |
80 |
יוסי |
8000 |
70 |
אופיר |
7000 |
70 |
עמית |
5000 |
70 |
רם |
4000 |
40 |
v AND מציין כי כל התנאים חייבים להתקיים.
העובדים אשר שכרם גבוה מ– 6000 וגם מספר מחלקתם 70.
העובדים אשר עונים על שני תנאים אלו הם: אופיר ויוסי (2 עובדים סה"כ).
v OR מציין כי לפחות אחד מהתנאים חייב להתקיים.
העובדים אשר שכרם גבוה מ– 6000 או מספר מחלקתם 70 :
o אצל רם – אף אחד מהתנאים לא מתקיים.
o אצל עמית מספר המחלקה הוא 70 – תנאי אחד מתקיים.
o אצל יוסי ואופיר שכרם גבוה מ– 6000 ומספר מחלקתם 70 – שני התנאים מתקיימים.
o אצל חיה ודוד השכר גבוה מ– 6000 – תנאי אחד מתקיים.
5 עובדים עונים לפחות על תנאי אחד.
! משום שאופרטור OR מתקיים גם כאשר רק חלק מהתנאים מתקיימים, אופרטור OR מחזיר יותר ערכים.
העובדים אשר שכרם גבוה מ– 6000 וגם מספר מחלקתם 70 :
WHERE salary > 6000 AND Department_id = 70
העובדים אשר שכרם גבוה מ– 6000 או מספר מחלקתם 70 :
WHERE salary > 6000 OR Department_id = 70
! משפט WHERE מופיע פעם אחת בלבד, לאחר פקודת OR או AND אנו נכתוב את התנאי הנוסף ללא ציון נוסף של פקודת WHERE.
סדר קדימויות בין תנאים
פקודת AND קודמת לפקודת OR (כשם שפעולת הכפל קודמת לפעולת החיבור )
WHERE Job_Title = ‘DBA’ OR Job_Title = ‘Manager’ AND Salary > 8000
במשפט WHERE זה בחרנו להציג את אלו אשר :
(תנאי ראשון) התפקיד שלהם הוא DBA.
או
(תנאי שני) התפקיד שלהם הוא Manager וגם הם מרוויחים מעל 8000.
שינוי סדר הקדימויות בין תנאים
כאשר נרצה לשנות את סדר הקדימויות בין OR ל– AND נשתמש בסוגריים (כשם שסוגריים משנים את סדר הקדימויות בין חיבור לכפל).
WHERE (Job_Title = ‘DBA’ OR Salary > 8000) AND Last_name LIKE ‘%a%’
במשפט WHERE זה בחרנו להציג את אלו אשר :
(תנאי ראשון) התפקיד שלהם הוא DBA או השכר שלהם גבוה מ 8000.
וגם
(תנאי שני) שם המשפחה שלהם מכיל את האות a.
נערך ע”י אלעד פלג