
CASE @i WHEN 1 THEN ... WHEN 2 THEN .... אם לא נכנסו לאף ערך, מבצעים את חלק ה-ELSE, והפונקציה נסגרת ב-END.unit price BETWEEN 2.5 AND 20. התנאים יכולים להיות חופפים או זרים זה לזה.הטקסט המלא של הדקות הראשונות בהרצאה «פקודת case - חלק 3» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם היום אנחנו נלמד את השימוש בפונקציית קייס פונקציית קייס פועלת באופן מאוד מאוד דומה לתנאי בוליאני לif ואפשר להשתמש בה בחלק של הטרנזקט sql פונקציה זו של קייס מאפשרת לנו להחזיר נתונים שונים על בסיס בדיקת הערך המוחזר בתוך sql server יש לנו שני וריאציות שונות לפונקציית קייס אנחנו מבחינים בין קייס
סימפל לקייס סרצ' כפי שאנחנו נראה בהמשך השיעור כאשר Case Simple נמצא במבנה הבא זהו Case שבו אנחנו בודקים משתנה מסוים משתנה variable ובהינתן מצב שבו הוא שווה לערך מסוים ל-value אנחנו בודקים אותו מול ערך סקלרי נקודתי אז אנחנו מבצעים או מדפיסים או מבצעים את הפעולות המתאימות.
בהינתן מצב שבו הוא שווה ל-value מספר 2 אנחנו נבצע פעולות אחרות עובדי נתונות 2. יש לנו אפשרות בסוף ה-case גם לקרוא לחלק של ה-else, שהוא יתבצע לנו בכל מקרה יתבצע כאן הפעולה הזאת.
בסופו של דבר את ה-case אנחנו סוגרים על ידי end-case, על ידי נקודה שבה אנחנו סוגרים את ה-case עצמו. בואו נראה דוגמה, בדוגמה הבאה שלפנינו אנחנו מעוניינים בסופו של דבר לקבל נתון מתוך טבלת employees ועל בסיס הנתון הזה, מבסיס הערך עצמו ה-Valueable עצמו שכפי שיתקבל
מתוך טבלת Employee להציג למשתמש פלט מתאים. בואו נגדיר את המשתנה שאותו אנחנו נקבל מתוך טבלת Employees. Declare i end אנחנו נקלוק את ה-employee ID.
Select שטרידל i שווה ל-employee ID שהוא אינטג'ר ולכן אנחנו מתאמים כאן מבחינת הדאטה דייק. Home employees, מקבלים את זה כאן מתוך employees ומה שאנחנו בסופו של דבר עד כאן רוצים להדפיס את ה-strudel I. אבל איך אנחנו נדפיס אותו? לפי Case. בואו נשתמש ב-Case.
Case strudel I, Case variable, Case המשתנה עצמו. עכשיו אנחנו צריכים לתת דגימה של הערכים. When ערך מסוים, When strudel I יהיה שווה לאחד, then אנחנו נדפיס מחוזת מסוימת, אנחנו מוכנים להתצמד לשמות לפריסטמן או לאסטרון שנמצאים בטבלת נקלואיז ואו נפפיס את ננסי.
זכתה. When 1 then פריסט ננסי, When 2 then אנחנו ניקח את האנרי, When 3 אנחנו נקבל מכרוזת אחרת של סטיבנט. כל מכרוזת בעצם תודפס, תישלח לפקודת הפרינט, בהתאם לערך שנמצא בתוך המשתנה שאותו אנחנו בודקים השטרודל I. הוא N9 תפסנו מספר רמה גבוה ביותר נדפיס את מרגרט וכולי וכולי אנחנו יכולים ללכת ולפרט אבל שימו לב שהקוד כאן
הוא הרבה הרבה יותר קריא מאשר אוסף של ifים בגין כל שורה כאן הייתי צריך לרשום if else if else if else כלומר לשרשר כאן מספר של if else else if ובסופו של דבר על מנת להדפיס את הערך ולתת גם אלס כאן אנחנו נותנים כאן אלס no value נבחר את המכרוזת הזאת ו-end אנחנו סוגרים את ה-case שלפנינו בואו
נריץ את התוכנית בואו נראה את ה-case simple הראשון שאותו אנחנו יוצרים F5 ולא F4 כפי שאנחנו עושים תמיד F5 וכאן אם אני ארים את הפלט אנחנו נזהה שקיבלנו את העובדת מרגרט כלומר קיבלנו את 9.
אם אני אדרוס כאן את הקטע בואו ננסה להכניס שטרודל I, I שווה ל-1 אנחנו נדרוס את הערך כפי שקיבלנו אותו מתוך דאטה סלק F5 אנחנו נקבל כאן את ננסי ואם אנחנו נרצה לקבל את סטיבן אז מספיק שאני ארשום כאן שלוש שלוש קייס F5 והנה אנחנו מקבלים כאן את סטיבן נמצאנו למדים חברים וחברות שהחלק
של הטיל כאן את המסך על מנת שנוכל לראות החלק של הקייס סימפל דוגם לנו ערך במקרה הזה ערך אינטג'רי ערכים מספריים דוגם לנו את הערך ובין להתאם לערך נותן דגימה של הנתונים האפשריים 1, 2, 3 ו-9 בגין כל נתון תתבצע פעולה מסוימת.
בסוף במידה ולא נכנסתי לאף אחד מתוך ה-Case When אנחנו נכנסים ל-Else. כמובן שאת כל הקטע הזה שלפנינו יכולנו להחליף על ידי If ו-Else If שרשור של מספר תנאים היינו עושים את זה רק שזה היה יוצא לנו הרבה הרבה יותר ארוך.
קייס סרצ' המבנה שלו הוא כדלקמן, בקייס סרצ' אנחנו לא דוגמים משתנה כזה או אחר, מרחב התנאים שלנו הוא רחב יותר, אנחנו רק רושמים קייס ללא ציון משתנה כזה או אחר, ובחלק של הוואן אנחנו מציינים תנאי בוליאני, לא ערכים קלאריים נקודתיים להשוואה למשתנה, אלא תנאי כלשהו, וואן קונדישן, כל תנאי בוליאני שאותו אנחנו
כבדים לרשום תקף וקביל בחלק הזה, then פעולה מסוימת שאותה אנחנו נבצע when תנאי אחר, לאו דווקא משלים לו, לאו דווקא קשור אליו, then ביצוע הפעולה המתאימה.
בכל חלק של ה-case אנחנו רשאים לרשום איזה תנאים שאנחנו רוצים. אפשר להיכנס לשני when, אפשר שתהיה חפיפה ביניהם, אפשר שהם יהיו שונים לזה, זרים לזה, הכל כאן קביל.
בסוף יש לנו את האנס, במידה ולא נכנסתי על אף אחד מה-when אנחנו נכנסים לתוך ה-case, בסופו של דבר End Case בעצם על מנת לסגור את ה-Case שלה. בואו נראה דוגמא כיצד אנחנו מבצעים Case Search עבור הנתונים בטבלה.
אנחנו מעוניינים לפלח את כל המחירים וקוד מוצר Product ID ו-Unit Price מתוך טבלת פרודקטס. בואו נציג את כל המחירים מתוך הטבלה. Ordered by Unit Price F5 על מנת לקבל את הפלט והפלט מוצג לפנינו כל קודי מוצר והמחירים שלהם ממוניינים אנחנו מעוניינים להכניס אותם לתוך קטגוריות כלומר לסכום