सारांश: इस ट्यूटोरियल में, आप SQLite CASE . के बारे में जानेंगे एक क्वेरी में सशर्त तर्क जोड़ने के लिए अभिव्यक्ति।
SQLite CASE अभिव्यक्ति शर्तों की एक सूची का मूल्यांकन करती है और मूल्यांकन के परिणाम के आधार पर एक अभिव्यक्ति लौटाती है।
CASE अभिव्यक्ति IF-THEN-ELSE . के समान है अन्य प्रोग्रामिंग भाषाओं में बयान।
आप CASE . का उपयोग कर सकते हैं किसी भी खंड या कथन में अभिव्यक्ति जो एक वैध अभिव्यक्ति को स्वीकार करती है। उदाहरण के लिए, आप CASE . का उपयोग कर सकते हैं खंड में अभिव्यक्ति जैसे WHERE , ORDER BY , HAVING , SELECT और कथन जैसे SELECT , UPDATE , और DELETE ।
SQLite CASE के दो रूप प्रदान करता है अभिव्यक्ति:सरल CASE और CASE खोजा ।
SQLite सरल CASE अभिव्यक्ति
आसान CASE अभिव्यक्ति परिणाम वापस करने के लिए अभिव्यक्तियों की सूची में अभिव्यक्ति की तुलना करती है। निम्नलिखित सरल CASE . के सिंटैक्स को दर्शाता है अभिव्यक्ति।
CASE case_expression
WHEN when_expression_1 THEN result_1
WHEN when_expression_2 THEN result_2
...
[ ELSE result_else ]
ENDCode language: SQL (Structured Query Language) (sql)
आसान CASE एक्सप्रेशन case_expression . की तुलना करता है पहले WHEN . में व्यंजक प्रकट होता है खंड, when_expression_1 , समानता के लिए।
अगर case_expression when_expression_1 . के बराबर है , सरल CASE संबंधित THEN . में व्यंजक लौटाता है खंड, जो result_1 . है ।
अन्यथा, आसान CASE एक्सप्रेशन case_expression . की तुलना करता है अगले WHEN . में व्यंजक के साथ खंड।
मामले में कोई case_expression when_expression . से मेल खाता है , CASE अभिव्यक्ति result_else लौटाती है ELSE . में खंड। अगर आप ELSE . को छोड़ देते हैं खंड, CASE एक्सप्रेशन NULL लौटाता है।
आसान CASE अभिव्यक्ति शॉर्ट-सर्किट मूल्यांकन का उपयोग करती है। दूसरे शब्दों में, यह परिणाम देता है और जैसे ही यह एक मैच पाता है, अन्य स्थितियों का मूल्यांकन करना बंद कर देता है।
साधारण CASE उदाहरण
आइए एक नज़र डालते हैं customers . पर नमूना डेटाबेस में तालिका।
मान लीजिए, आपको ग्राहक समूहों की रिपोर्ट इस तर्क के साथ बनानी है कि यदि कोई ग्राहक संयुक्त राज्य अमेरिका में स्थित है, तो यह ग्राहक घरेलू समूह से संबंधित है, अन्यथा ग्राहक विदेशी समूह से संबंधित है।
यह रिपोर्ट बनाने के लिए, आप सरल CASE . का उपयोग करते हैं SELECT . में एक्सप्रेशन बयान इस प्रकार है:
SELECT customerid,
firstname,
lastname,
CASE country
WHEN 'USA'
THEN 'Domestic'
ELSE 'Foreign'
END CustomerGroup
FROM
customers
ORDER BY
LastName,
FirstName;Code language: SQL (Structured Query Language) (sql) इसे आज़माएं
SQLite ने CASE खोजा अभिव्यक्ति
खोजा गया CASE अभिव्यक्ति परिणाम तय करने के लिए अभिव्यक्तियों की एक सूची का मूल्यांकन करती है। ध्यान दें कि सरल CASE अभिव्यक्ति केवल समानता के लिए तुलना करती है, जबकि खोजे गए CASE अभिव्यक्ति तुलना के किसी भी रूप का उपयोग कर सकती है।
निम्नलिखित खोजे गए CASE . के सिंटैक्स को दर्शाता है अभिव्यक्ति।
CASE
WHEN bool_expression_1 THEN result_1
WHEN bool_expression_2 THEN result_2
[ ELSE result_else ]
ENDCode language: SQL (Structured Query Language) (sql)
खोजा गया CASE एक्सप्रेशन निर्दिष्ट अनुक्रम में बूलियन एक्सप्रेशन का मूल्यांकन करता है और अगर एक्सप्रेशन सही पर मूल्यांकन करता है तो संबंधित परिणाम लौटाता है।
यदि कोई व्यंजक सत्य का मूल्यांकन नहीं करता है, तो खोजा गया CASE एक्सप्रेशन ELSE . में एक्सप्रेशन लौटाता है खंड यदि निर्दिष्ट किया गया है। अगर आप ELSE . को छोड़ देते हैं खंड, खोजा गया CASE एक्सप्रेशन NULL लौटाता है ।
साधारण CASE . के समान एक्सप्रेशन, खोजा गया CASE एक शर्त पूरी होने पर अभिव्यक्ति मूल्यांकन को रोक देती है।
खोज CASE उदाहरण
हम tracks . का उपयोग करेंगे प्रदर्शन के लिए तालिका।
मान लीजिए कि आप ट्रैक को उसकी लंबाई के आधार पर वर्गीकृत करना चाहते हैं जैसे कि एक मिनट से कम, ट्रैक छोटा है; 1 से 5 मिनट के बीच, ट्रैक मध्यम है; 5 मिनट से अधिक, ट्रैक लंबा है।
इसे प्राप्त करने के लिए, आप खोजे गए CASE . का उपयोग करते हैं अभिव्यक्ति इस प्रकार है:
SELECT
trackid,
name,
CASE
WHEN milliseconds < 60000 THEN
'short'
WHEN milliseconds > 60000 AND milliseconds < 300000 THEN 'medium'
ELSE
'long'
END category
FROM
tracks;Code language: SQL (Structured Query Language) (sql) इसे आज़माएं
इस ट्यूटोरियल में, आपने SQLite CASE . के बारे में सीखा है एक SQL क्वेरी के अंदर सशर्त तर्क बनाने के लिए अभिव्यक्ति।