מדריך SQL זה מתמקד בחישובים על עמודות. מדריך זה הינו חלק מרשימת פוסטים הנוגעים לכתיבת שאילתות בסיסיות ב SQL SERVER. כדי להגיע לפוסטים הנוספים ניתן להעזר בקישורים הבאים :
- כיצד ניתן לכתוב פקודות SELECT בסיסיות.
- פעולות מתמטיות על עמודות בטבלה.
- כינויים לעמודות.
- שרשור ערכים מעמודות שונות.
- פקודת DISTINCT.
חישובים על עמודות
לא תמיד נרצה להציג את המידע כמות שהוא, אלא קיימים מצבים בהם נרצה להציג אותו יחד עם חישובים מסויימים על העמודות המייצגות אותו (לדוגמא, נרצה לדעת כיצד יראו המחירים בעמודת מחיר לאחר הוספת מע"מ).
אנו נבחן את נושא החישובים לפי סוגי העמודות השונות:
חישובים על עמודות מסוג מספר
בדוגמא זו אנו מציגים את שמו של העובד, שם משפחתו ושכרו לאחר העלאה של 20%.
SELECT last_name , first_name, salary, salary * 1.2 FROM employees
רצוי לכתוב את העמודה המקורית ללא השינוי (salary) בנוסף על העמודה עם החישוב (salary * 1.2) כדי שנוכל לראות את ההבדל (בדוגמא זו את ההעלאה).
ניתן לבצע כל חישוב מתמטי שנרצה על העמודות:
SELECT last_name , first_name , salary, salary * 0.14 / 2.74 + 52.36 FROM employees
אם נרצה להגדיר סדר קדימויות בביצוע הפעולות אנו נשתמש בסוגריים:
SELECT last_name , first_name , salary, salary * 0.14 / (2.74 + 52.36) FROM employees
חישובים על עמודות מסוג מחרוזת
לא ניתן לבצע חישובים מתמטיים על עמודות מסוג מחרוזת:
SELECT last_name , first_name + 300 FROM employees (שגיאה)
חישובים על עמודות מסוג תאריך
כאשר נבצע חישוב על עמודה מסוג תאריך, התוצאה תהיה שינוי התאריך ברמה של ימים:
SELECT last_name , first_name , hire_date, hire_date + 1 FROM employees
– תוצאה: תאריך העסקת העובד ועוד (+) יום אחד.
SELECT last_name , first_name , hire_date, hire_date - 1 FROM employees
– תוצאה: תאריך העסקת העובד פחות (-) יום אחד.
לא ניתן לבצע חישוב של * (כפל) או / (חילוק) על עמודות מסוג תאריך:
SELECT last_name , first_name , hire_date, hire_date * 3 FROM employees (שגיאה) SELECT last_name , first_name , hire_date, hire_date / 7 FROM employees (שגיאה)
חישובים על עמודות אשר מכילות בתוכן ערכי NULL
ערך NULL הוא ערך המציין שדה ריק בטבלה, ערך NULL לא שווה לאפס (0) וגם לא שווה לרווח (‘ ’) יש להתייחס אליו כחלל ריק.
כאשר נבצע חישוב כלשהו על עמודה אשר מכילה ערכי NULL, כל חישוב על הערך NULL יחזיר NULL.
SELECT last_name, salary, commission_pct, commission_pct + 1 FROM employees SELECT last_name, salary, commission_pct , salary * commission_pct FROM employees
! עמודת commission_pct היא עמודה המכילה ערכי NULL,כל חישוב על עמודה זו יחזיר לנו NULL.
! חישובים על עמודות (כל סוג של עמודה) לא משנים את תוכן העמודה בטבלה, אלא רק מציגים את תוכן העמודה, לאותה שליפה ספציפית, בצורה אחרת.
! חישובים על עמודות משנים את שם כותרת העמודה בפלט.
SELECT last_name, salary, salary + 500 FROM employees
התוצאה תראה כך :
last_name salary (No Column Name) ------------ ------ ---------------- Levi 5700 6200
נערך ע”י אלעד פלג