2.1 केस स्टेटमेंट
SQL में Statement लिखने के दो तरीके हैं CASE
। पहली प्रविष्टि इसे जावा भाषा से स्विच की तरह दिखती है, जबकि दूसरा प्रारूप बहुवचन की तरह है if-else
।
आइए पहले विकल्प से शुरू करें - स्विच का एक एनालॉग। सामान्य प्रारूप है:
CASE case_value
WHEN value1 THEN result1
[WHEN value2 THEN result2] ...
[ELSE resultN]
END
वास्तव में बहुत समान है switch
, केवल शब्द थोड़े अलग हैं:
एसक्यूएल | जावा |
---|---|
केस एक्स | स्विच (एक्स) { |
जब मूल्य | मामला मूल्य: |
फिर परिणाम | वापसी परिणाम; |
अन्य परिणाम | डिफ़ॉल्ट: वापसी परिणाम; |
अंत | } |
आइए जावा से एसक्यूएल में एक उदाहरण का अनुवाद करें:
जावा | एसक्यूएल |
---|---|
|
|
2.2 CASE कथन का दूसरा संस्करण
ऑपरेटर का एक दूसरा संस्करण भी है CASE
, जैसा कि ऊपर उल्लेख किया गया है, बहुवचन की तरह अधिक है if-else
। सामान्य प्रारूप है:
CASE
WHEN condition 1 THEN result1
[WHEN condition 2 THEN result2] ...
[ELSE resultN]
END
यहां, शर्तों को क्रमिक रूप से जांचा जाता है, यदि उनमें से कोई भी सत्य है, तो निर्दिष्ट परिणाम वापस आ जाएगा। यदि कोई भी स्थिति सत्य नहीं है, तो में निर्दिष्ट मान ELSE
।
आइए जावा से एसक्यूएल में एक उदाहरण का अनुवाद करें:
जावा | एसक्यूएल |
---|---|
|
|
|
|
|
|
2.3 CASE कथन का उपयोग करके समस्या का समाधान करें
आइए कुछ रोचक प्रश्न लिखें। याद रखें, हमारा एक काम था - शब्द "EXPIRED!" कार्य तालिका में पिछले कार्यों के नाम पर । से आसानी से किया जा सकता है CASE
।
समय सीमा क्षेत्र के लिए , यह कथन के दूसरे संस्करण जैसा दिखेगा CASE
:
CASE
WHEN deadline < CURDATE() THEN CONCAT('EXPIRED!', name)
ELSE name
END
ऑपरेटर का उपयोग करके पूर्ण क्वेरी का एक उदाहरण CASE
:
SELECT
id,
emploee_id,
CASE WHEN deadline < CURDATE() THEN CONCAT('EXPIRED!', name) ELSE name END AS name,
deadline
FROM task
इस प्रश्न का परिणाम होगा:
पहचान | कर्मचारी_आईडी | नाम | अंतिम तारीख |
---|---|---|---|
1 | 1 | खत्म हो चुका! दृश्यपटल पर एक बग ठीक करें | 2022-06-01 |
2 | 2 | बैकएंड पर एक बग ठीक करें | 2022-06-15 |
3 | 5 | कॉफी खरीदें | 2022-07-01 |
4 | 5 | कॉफी खरीदें | 2022-08-01 |
5 | 5 | कॉफी खरीदें | 2022-09-01 |
6 | (व्यर्थ) | कार्यालय की सफाई करें | (व्यर्थ) |
7 | 4 | जीवन का आनंद लें | (व्यर्थ) |
8 | 6 | जीवन का आनंद लें | (व्यर्थ) |
GO TO FULL VERSION