2.1 CASE विधान
SQL मध्ये विधान लिहिण्याचे दोन मार्ग आहेत CASE
. पहिली एंट्री जावा भाषेतून स्विच केल्यासारखे दिसते, तर दुसरे स्वरूप बहुवचन सारखे आहे if-else
.
चला पहिल्या पर्यायासह प्रारंभ करूया - स्विचचे अॅनालॉग. सामान्य स्वरूप आहे:
CASE case_value
WHEN value1 THEN result1
[WHEN value2 THEN result2] ...
[ELSE resultN]
END
खरोखर सारखेच switch
, फक्त शब्द थोडे वेगळे आहेत:
SQL | जावा |
---|---|
केस x | स्विच (x) { |
जेव्हा मूल्य | केस मूल्य: |
नंतर परिणाम | परतावा परिणाम; |
इतर परिणाम | डीफॉल्ट: परतावा परिणाम; |
शेवट | } |
चला Java मधून SQL मध्ये एक उदाहरण अनुवादित करू:
जावा | SQL |
---|---|
|
|
2.2 CASE विधानाची दुसरी आवृत्ती
ऑपरेटरची दुसरी आवृत्ती देखील आहे CASE
, जी वर नमूद केल्याप्रमाणे, बहुवचन सारखी आहे if-else
. सामान्य स्वरूप आहे:
CASE
WHEN condition 1 THEN result1
[WHEN condition 2 THEN result2] ...
[ELSE resultN]
END
येथे, अटी फक्त क्रमाने तपासल्या जातात, जर त्यापैकी कोणतीही सत्य असेल, तर निर्दिष्ट परिणाम परत केला जाईल. जर कोणतीही परिस्थिती सत्य नसेल, तर मूल्य मध्ये निर्दिष्ट केले आहे ELSE
.
चला Java मधून SQL मध्ये एक उदाहरण अनुवादित करू:
जावा | SQL |
---|---|
|
|
|
|
|
|
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
या क्वेरीचा परिणाम असेल:
आयडी | कर्मचारी_आयडी | नाव | अंतिम मुदत |
---|---|---|---|
१ | १ | कालबाह्य! फ्रंटएंडवरील बगचे निराकरण करा | 2022-06-01 |
2 | 2 | बॅकएंडवरील बगचे निराकरण करा | 2022-06-15 |
3 | ५ | कॉफी विकत घ्या | 2022-07-01 |
4 | ५ | कॉफी विकत घ्या | 2022-08-01 |
५ | ५ | कॉफी विकत घ्या | 2022-09-01 |
6 | (निरर्थक) | ऑफिसची साफसफाई करा | (निरर्थक) |
७ | 4 | जीवनाचा आनंद घे | (निरर्थक) |
8 | 6 | जीवनाचा आनंद घे | (निरर्थक) |