
הדוגמאות בפוסט הזה מתייחסות לבסיס נתונים המבוסס על הסדרה הפופולארית "משחקי הכס" שיצרתי במיוחד עבור המדריך הזה. אם אתם רוצים להוריד אותו בעצמכם או סתם להבין מה זה בכלל אתם יכולים ללחוץ כאן
משמעות הביטוי CASE
הפקודה CASE מאפשרת לנו לייצר מעין בלוק תנאים מובנה שמאפשר לנו להגדיר סדרת תנאים או מצבים ולייצר ערך בהתאם.
ביטוי CASE תמיד מייצר לנו ערך ואינו יכול לעשות משהו מעבר לכך. מהבחינה הזאת הוא מוגבל בהרבה מתנאי IF,
שאינו מוגבל בפעולות שניתן לבצע באמצעותו.
ניתן להשתמש בביטוי CASE בתוך שאילתת SQL רגילה כדי לייצר עמודה מחושבת,
או בתוך בלוק T-SQL כדי לייצר ערך שייכנס לתוך משתנה באופן דינאמי. בפוסט הזה אסביר על שתי השיטות.
יצירת עמודה באמצעות CASE בתוך שאילתה
ביטוי CASE משמש ב-SQL כדי לייצר עמודה מחושבת כאשר הערך שמוצב בכל שורה מותנה בסדרת תנאים, לדוגמה: עמודה שתכיל סטטוס (טקסט משתנה) על פי מאזן המכירות של כל מוצר או עמודה שתכיל אחוז עמלה משתנה (מספר) על פי מספר עסקאות שביצע כל עובד. המבנה נראה בדרך כלל כך:
לדוגמה, נוכל להשתמש בקוד הבא כדי לייצר עמודה שתציג את חשיבות הבית ע"פ מספר הדמויות הפעילות ששייכות אליו.
בלוק ה-CASE (שורות 3-6) יצר לנו עמודה מחושבת שמבצעת בדיקה בכל שורה ומייצרת ערך בהתאם לתנאים שהוגדרו. התוצאה תראה כך: