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 | जीवनाचा आनंद घे | (निरर्थक) |
GO TO FULL VERSION