
CASE WHEN תנאי THEN ערך ELSE ערך END. אפשר לשרשר כמה WHEN, ו-ELSE מכסה את כל השאר. הפקודה נסגרת ב-END.COUNT(*) נותן את מספר המוצרים הכולל, ומופיע בשאילתה כעמודה נוספת. בדוגמה הסכום הוא 77.שם = ביטוי, או בסופה בעזרת AS.הטקסט המלא של הדקות הראשונות בהרצאה «פקודת case - חלק 2» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, Case Search זהו הנושא של השיעור שלנו כיצד אנחנו בתוך פקודת Select של SQL Statement אנחנו משבצים את השימוש באופרטור של Case.
אז הנושא שלנו הוא Case Search ובואו נראה את התבנית כיצד אני יוצר את זה. Case When אני מתחיל כאן באיזשהו תנאי בוליאני שאותו אנחנו מכניסים בתוך ה-When בעצמו הראשון ובהתאם לקיומו או אי קיומו של התנאי במידה והותרו אז then אנחנו מבצעים פקודה מסוימת.
לאחר ה-when הזה אני יכול לשרשר whenים נוספים כלומר תנאים נוספים בוליאן קונדישן ולבצע בהתאם את הביצוע את הפקודה הנדרשת.
בסופו של דבר לאחר כל שרשרת של when, when ו-then אנחנו יכולים לכתוב פקודת של אלס. כאן אני בחרתי רק לצורך התבנית לסגור את פקודת הקייס על ידי המילה השמורה n.
איך אנחנו משתמשים בזה? בואו ניכנס לתוך טבלת פרודקס. שימו לב שטבלת פרודקס בעצם מציינת לי רשימה של מחירים.
מחירים לכל מוצר, יש לנו כאן את העמודה של Unit Price per כל מוצר. אם אני רוצה לקחת את המחירים הללו ולחלק אותם לקטגוריה, לזולים, בינוניים ויקרים, מחירים למעמד הנמוך, למעמד הגבוה, מחירים למעמד הביניים, אני רוצה לחלק ברמה של המוצרים את המחירים שלי בחברה, איך אנחנו עושים את זה בתוך פקודת סלקט אחת,
תוך שימוש באופרטור של הקייס, אז שימו לב לדוגמה הבאה. סלקט, סאם, גם כאן כשאני סוכם אז אני יכול להיכנס בתוך פקודת האגרגציה, כמובן בתוך חלק מפקודת הסלקט, אני יכול לכתוב קייס ורנד, תנאי מסוים, כל תנאי בוליאני שהיה מתאים לנו בתוך החלק
של הוורקלוז, יכול להיכנס כאן בתוך החלק של הסלקט ואני סוכם אותם ואומר רק כאשר יוניט פרייז ביטווין 2.5 אנד 20 תן 1 תציג לי כאן 1 אלס 0 מה שבעצם וכאן אנד אני סוגר כמובן את הפקודה סוגר סוגריים ומתפנה בעצם לעמודה הבאה מה שנעשה כאן שימו לב יש לי כאן את הסאמפ הוא קצת סכימה שהיא סופרת
שהיא סוכמת לנו מספרים אבל אני משתמש בה כאן כקאונט מכיוון שאו שאני מספק לה 1 או שאני מספק לה 0. בהינתן מצב שהתנאי הבוליאני הזה לא מתקיים והמחיר הוא גבוה מ-20 או נמוך מ-2.5 אני אקבל כאן 0 ולכן הסכימה הזו של 0 לא תבוא לידי ביטוי, לא תוסיף לנו את האיבר עצמו.
בואו נראה שאני רוצה לסכום גם איברים נוספים קבוצות מסוימות