מדריך SQL זה מתמקד בתנאי השוואה פשוטים. מדריך זה הינו חלק מרשימת פוסטים הנוגעים לפקודת ה WHERE ב SQL SERVER. כדי להגיע לפוסטים הנוספים ניתן להעזר בקישורים הבאים :
- הקדמה – מבנה משפט WHERE
- תנאי השוואה פשוטים
- תנאי השוואה מורכבים
- פקודות AND ו – OR
תנאי השוואה פשוטים מול סוגי ערכים שונים
ראשית נעסוק בתנאי השוואה פשוטים (כאמור = , < , > , => , =<, <>) ביחס לערכים שונים: מספריים, מחרוזתיים ותארכיים.
כדי להשוות מול ערך מספרי נכתוב את ערכו יחד עם סימן ההשוואה המתאים:
WHERE salary = 500
חל איסור לכתוב את הערך המספרי יחד עם תווים מיוחדים:
WHERE salary = $50000 (שגיאה) WHERE salary = 50,000 (שגיאה) WHERE salary = 50000 (תקין)
! כאשר נבקש לקבל מספרים אשר אינם קיימים בטבלה( לדוגמא, salary > 1000000) לא תתקבל אף תוצאה אך גם לא תתקבל שגיאה, דרשנו נתונים שמבחינת הטבלה לא קיימים.
כדי להשוות מול מחרוזות:
1. חובה לכתוב את הערך המחרוזתי בתוך גרשים ('ערך מחרוזתי')
WHERE last_name = Levi (שגיאה) WHERE last_name = ‘Levi’ (תקין)
2. מבחינת גודל האותיות (LEVI מול Levi), לא חייבת להיות תאימות בין הערך בתוך העמודה לבין הערך שאותו כתבנו.
לדוגמא, קיימים עובדים בתוך הטבלה אשר שם משפחתם הוא Levi, אנו רוצים לכתוב שאילתה אשר תציג את שמם הפרטי של כל אותם עובדים.
שתי השאילתות הבאות יחזירו את אותן תוצאות בדיוק
SELECT first_name FROM employees WHERE last_name = ‘lEvI’ SELECT first_name FROM employees WHERE last_name = ‘Levi’
כדי להשוות מול תאריכים חובה לכתוב את הערך התאריכי בתוך גרשים ('ערך תאריכי') ובפורמט התקין:
WHERE hire_date = 05-17-2009 (שגיאה - פורמט לא תקין וחסרים גרשים) WHERE hire_date = '05-17-2009' (שגיאה - פורמט לא תקין) WHERE hire_date = '2009-05-17' (תקין)
v באופן דיפולטיבי SQL Server מציג תאריכים בפורמט הבא: yyyy-mm-dd.
תנאי השוואה פשוטים מוגבלים לערך בודד. לדוגמא, אם נרצה לדעת את שמות העובדים אשר שכרם שווה ל– 5000, 6000, 8500, ו– 10,000 לא נוכל לכתוב:
WHERE salary = 5000 , 6000 , 8500 , 10,000 (שגיאה)
נערך ע”י אלעד פלג