SQL CASE Expression

CASE अभिव्यक्ति सीखें जो स्थितियों का मूल्यांकन करती है और पहली सच्ची स्थिति के लिए एक मान लौटाती है

SQL CASE अभिव्यक्ति

एक CASE अभिव्यक्ति शर्तों को पारित करती है और पहली शर्त पूरी होने पर एक मान लौटाती है (यदि-तब-अन्यथा कथन के समान)। इसलिए, यदि कोई शर्त सत्य हो जाती है, तो यह पढ़ना बंद कर देता है और परिणाम लौटाता है।

यदि कोई भी शर्त सत्य नहीं है तो ELSE भाग में मान लौटाता है।

⚠️नोट:

यदि कोई ELSE भाग नहीं है और कोई भी शर्त सत्य नहीं है, तो NULL लौटा दिया जाता है।

केस सिंटैक्स

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END;

CASE अभिव्यक्ति का वर्कफ़्लो

1

पहली स्थिति का परीक्षण किया जाता है

2

यदि शर्त सत्य है, तो परिणाम लौटा दिया जाता है

3

अन्यथा अगली स्थिति का परीक्षण किया जाता है

4

यदि सभी गलत हैं तो ELSE परिणाम लौटाया जाता है

प्रदर्शन डेटाबेस

नीचे नॉर्थविंड नमूना डेटाबेस में "ऑर्डर विवरण" तालिका से एक चयन दिया गया है:

OrderDetailID OrderID ProductID Quantity
1 10248 11 12
2 10248 42 10
3 10248 72 5
4 10249 14 9
5 10249 51 40

एसक्यूएल केस उदाहरण

निम्नलिखित SQL शर्तों से गुजरता है और पहली शर्त पूरी होने पर एक मान लौटाता है:

उदाहरण 1

SELECT OrderID, Quantity,
CASE
    WHEN Quantity > 30 THEN 'The quantity is greater than 30'
    WHEN Quantity = 30 THEN 'The quantity is 30'
    ELSE 'The quantity is under 30'
END AS QuantityText
FROM OrderDetails;

निम्नलिखित SQL ग्राहकों को शहर के आधार पर क्रमित करेगा। हालाँकि, यदि शहर शून्य है, तो देश के आधार पर छँटाई होगी:

उदाहरण 2

SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
    WHEN City IS NULL THEN Country
    ELSE City
END);

💡सहायता नोट:

CASE एक्सप्रेशन का उपयोग SQL के विभिन्न भागों में किया जा सकता है, जिसमें SELECT, WHERE, ORDER BY और HAVING स्टेटमेंट शामिल हैं। यह डेटा को फ़ॉर्मेट करने और वर्गीकृत करने के लिए बहुत उपयोगी है।

व्यावहारिक उदाहरण

मूल्य वर्गीकरण

उत्पाद की कीमतों का वर्गीकरण

SELECT ProductName, Price,
CASE
    WHEN Price > 100 THEN 'Premium'
    WHEN Price > 50 THEN 'Standard'
    ELSE 'Budget'
END AS PriceCategory
FROM Products;

ग्राहक प्रकार

ग्राहकों को उनकी खरीदारी के आधार पर वर्गीकृत करना

SELECT CustomerName,
CASE
    WHEN TotalOrders > 50 THEN 'VIP'
    WHEN TotalOrders > 20 THEN 'Regular'
    ELSE 'New'
END AS CustomerType
FROM Customers;

प्रदर्शन का मूल्यांकन

कर्मचारी प्रदर्शन का मूल्यांकन

SELECT EmployeeName,
CASE
    WHEN Sales > 100000 THEN 'Excellent'
    WHEN Sales > 50000 THEN 'Good'
    WHEN Sales > 20000 THEN 'Average'
    ELSE 'Needs Improvement'
END AS Performance
FROM Employees;

अभ्यास

SQL CASE कथन क्या करता है?

तालिका की पंक्तियों पर पुनरावृत्ति करता है और प्रत्येक कॉलम के लिए एक मान लौटाता है
✗ ग़लत! एक CASE अभिव्यक्ति अनुक्रमों पर पुनरावृत्त रूप से निष्पादित नहीं होती है
स्थितियों का मूल्यांकन करता है और पहली सच्ची स्थिति के आधार पर एक मान लौटाता है
✓ ठीक है! CASE अभिव्यक्ति स्थितियों का मूल्यांकन करती है और पहली सच्ची स्थिति के लिए मान लौटाती है
किसी स्तंभ या तालिका के लिए एक चर नाम निर्दिष्ट करता है
✗ ग़लत! यह AS टेक्स्ट के लिए है
एक शर्त के आधार पर दो तालिकाओं से पंक्तियों को जोड़ता है
✗ ग़लत! यह JOIN के लिए है