fbpx

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



 

חישובים על עמודות

לא תמיד נרצה להציג את המידע כמות שהוא, אלא קיימים מצבים בהם נרצה להציג אותו יחד עם חישובים מסויימים על העמודות המייצגות אותו (לדוגמא, נרצה לדעת כיצד יראו המחירים בעמודת מחיר לאחר הוספת מע"מ).

אנו נבחן את נושא החישובים לפי סוגי העמודות השונות:

חישובים על עמודות מסוג מספר

בדוגמא זו אנו מציגים את שמו של העובד, שם משפחתו ושכרו לאחר העלאה של 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

נערך ע”י אלעד פלג