הצהרת SQL CASE

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

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

הצהרת CASE ב-SQL

  • ה CASE הצהרה ב SQL הוא ביטוי מותנה המאפשר לך לבצע לוגיקה מותנית בתוך שאילתה.
  • הוא משמש בדרך כלל ליצירת עמודות חדשות המבוססות על לוגיקה מותנית לספק ערכים מותאמים אישית או לשלוט על פלטי שאילתות בהתבסס על תנאים מסוימים.
  • אם שום תנאי לא נכון אז ה אַחֵר חלק יבוצע. אם אין חלק ELSE אז זה חוזר בָּטֵל.

תַחבִּיר:

כדי להשתמש בהצהרת CASE ב-SQL השתמש בתחביר הבא:

CASE case_value
WHEN condition THEN result1
כאשר מצב THEN result2
...
תוצאה אחרת
END CASE;

דוגמה להצהרת SQL CASE

בואו נסתכל על כמה דוגמאות של הצהרת CASE ב-SQL כדי להבין אותו טוב יותר.

בואו ניצור טבלת SQL הדגמה שתשמש בדוגמאות.

הדגמה של מסד נתונים של SQL

אנו נשתמש בטבלת SQL לדוגמה זו עבור הדוגמאות שלנו על הצהרת SQL CASE:

מזהה לקוח שם לקוח שם משפחה מְדִינָה גִיל טֵלֵפוֹן
1 סָפֵק ת'אקור הוֹדוּ 23 xxxxxxxxxx
2 כַּסֶפֶת צ'ופרה אוֹסטְרַלִיָה 21 xxxxxxxxxx
3 נאווין טולסי סרי לנקה 24 xxxxxxxxxx
4 אדיטיה ארפן אוֹסְטְרֵיָה 21 xxxxxxxxxx
5 נישאנט. Salchichas S.A. ג'יין סְפָרַד 22 xxxxxxxxxx

אתה יכול ליצור את אותו מסד נתונים במערכת שלך על ידי כתיבת שאילתת MySQL הבאה:

 CREATE TABLE Customer( CustomerID INT PRIMARY KEY CustomerName VARCHAR(50) LastName VARCHAR(50) Country VARCHAR(50) Age int(2) Phone int(10) ); -- Insert some sample data into the Customers table INSERT INTO Customer (CustomerID CustomerName LastName Country Age Phone) VALUES (1 'Shubham' 'Thakur' 'India''23''xxxxxxxxxx') (2 'Aman ' 'Chopra' 'Australia''21''xxxxxxxxxx') (3 'Naveen' 'Tulasi' 'Sri lanka''24''xxxxxxxxxx') (4 'Aditya' 'Arpan' 'Austria''21''xxxxxxxxxx') (5 'Nishant. Salchichas S.A.' 'Jain' 'Spain''22''xxxxxxxxxx');   

דוגמה 1: ביטוי CASE פשוט

בדוגמה זו אנו משתמשים בהצהרת CASE

שְׁאֵלָה:

 SELECT CustomerName Age CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;  

תְפוּקָה:

שם לקוח גִיל אֶזרָחוּת
סָפֵק 23 הוֹדִי
כַּסֶפֶת 21 זָר
נאווין 24 זָר
אדיטיה 21 זָר
נישאנט. Salchichas S.A. 22 זָר

דוגמה 2: SQL CASE כאשר מספר תנאים

אנו יכולים להוסיף מספר תנאים בהצהרת CASE על ידי שימוש בכפולה כַּאֲשֵׁר סעיפים.

שְׁאֵלָה:

 SELECT CustomerName Age CASE WHEN Age> 22 THEN 'The Age is greater than 22' WHEN Age = 21 THEN 'The Age is 21' ELSE 'The Age is over 30' END AS QuantityText FROM Customer;  

תְפוּקָה:

שם לקוח גִיל כמותטקסט
סָפֵק 23 הגיל גדול מ-22
כַּסֶפֶת 21 הגיל הוא 21
נאווין 24 הגיל גדול מ-22
אדיטיה 21 הגיל הוא 21
נישאנט. Salchichas S.A. 22 הגיל מעל 30

דוגמה 3: הצהרת מקרה עם סעיף ORDER BY

בואו ניקח את טבלת הלקוחות המכילה CustomerID CustomerName שם משפחה מדינה גיל וטלפון. אנו יכולים לבדוק את הנתונים של טבלת הלקוחות באמצעות ה הזמנה לפי סעיף עם הצהרת CASE.

שְׁאֵלָה:

 SELECT CustomerName Country FROM Customer ORDER BY (CASE WHEN Country IS 'India' THEN Country ELSE Age END);  

תְפוּקָה:

שם לקוח מְדִינָה
כַּסֶפֶת אוֹסטְרַלִיָה
אדיטיה אוֹסְטְרֵיָה
נישאנט. Salchichas S.A. סְפָרַד
נאווין סרי לנקה
סָפֵק הוֹדוּ

נקודות חשובות לגבי הצהרת מקרה

  • הצהרת SQL CASE היא ביטוי מותנה המאפשר ביצוע של שאילתות שונות בהתבסס על תנאים שצוינו.
  • תמיד צריך להיות א לִבחוֹר בהצהרת CASE.
  • END ELSE הוא רכיב אופציונלי אבל מתי אז מקרים אלה חייבים להיכלל בהצהרת CASE.
  • אנחנו יכולים לעשות כל הצהרה מותנית באמצעות כל אופרטור מותנה (כמו אֵיפֹה ) בין WHEN ל-THEN. זה כולל חיבור של הצהרות מותנות מרובות באמצעות ו ו-OR.
  • אנו יכולים לכלול הצהרות WHEN מרובות והצהרת ELSE כדי להתמודד עם תנאים לא מטופלים.

מַסְקָנָה

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

צור חידון