SQL CASE

נשתמש במשפט CASE כאשר נרצה ליצור משפטי SQL מסוג IF... THEN... ELSE אשר בהם יותר מתנאי אחד. למשל, במקרה שנרצה לשנות את הערכים המוחזרים על ידי שאילתה על פי תנאים כלשהם שאותם נשווה לערכים המתקבלים. או כאשר נרצה לעדכן ערכים בטבלה בצורה מותנית.

המבנה הכללי של משפט CASE יהיה:

SELECT CASE <שם עמודה>
WHEN <תנאי 1> THEN
"תוצאה1"
WHEN <תנאי 2> THEN
"תוצאה2"
...
ELSE "תוצאת ברירת מחדל"
END
FROM <שם טבלה>;

על מנת להמחיש זאת טוב יותר הבה נשתמש בטבלה הבאה ששמה בבסיס הנתונים יהיה Sales:

Status Product_Sales Product_Name Product_ID
פ 100 מוצר 1 123
פ 200 מוצר 2 124
ל 0 מוצר 3 125

נניח שברצוננו לשלוף באמצעות SELECT מטבלת המוצרים שלמעלה את כל שמות המוצרים שבטבלה ואת המכירות שלהם. משפט ה - SQL שלנו במקרה זה ייראה כך.

SELECT Product_Name, Product_Sales FROM Sales;

עתה נרצה גם להתייחס לשדה הסטטוס של המוצר. נניח שכאשר הערך בשדה זה הוא פ המוצר הוא פעיל ואילו כאשר ערכו ל המוצר אינו פעיל. כעת נרצה להציג בשאילתה את שמות המוצרים, את המכירות שלהם ואת הסטטוס שלהם. אולם, לא נרצה להציג את הערכים פ ו - ל אלא את הערכים 'מוצר פעיל' ו'מוצר לא פעיל', נעשה זאת באמצעות השאילתה הבאה:
SELECT product_Name,
'Status' = CASE WHEN 'פ' THEN 'מוצר פעיל'
WHEN 'ל' THEN 'מוצר לא פעיל'
ELSE 'לא ידוע'
END
FROM Sales;

תוצאת שאילתה זו תחזיר את הרשומות הבאות:

Product_Name Status
מוצר 1 מוצר פעיל
מוצר 2 מוצר פעיל
מוצר 3 מוצר לא פעיל

 
© 2010-2013  www.Devschool.co.il | מדיניות פרטיות | תנאי שימוש