Oracle sql डिकोड का परिचय
इस खंड में, हम Oracle डिकोड प्रोसेसिंग के बारे में चर्चा करेंगे जो Oracle sql स्टेटमेंट का एक बहुत ही महत्वपूर्ण पहलू है
ओरेकल डीकोड ओरेकल डेटाबेस में डेटा मानों को एक मान से दूसरे मान में बदलने की विधि है जिसे समझना बेहतर है। Oracle डिकोड पुनर्प्राप्ति समय पर डेटा मानों को बदल देता है।
यह एक प्रकार का यदि है तो . है प्रसंस्करण के लिए
Oracle sql डिकोड के लिए कोड ब्लॉक नीचे है
डीकोड(अभिव्यक्ति या स्तंभ नाम, मिलान, परिणाम [,मिलान, परिणाम]…[,डिफ़ॉल्ट] )
ऊपर दिए गए कोड में शब्दों के अर्थ यहां दिए गए हैं
a) एक्सप्रेशन या कॉलम तुलना करने के लिए मान है
b) मैच वह मान है जिसकी तुलना एक्सप्रेशन से की जाती है
c) परिणाम लौटाया गया मान है, यदि अभिव्यक्ति मिलान के बराबर है
d) डिफ़ॉल्ट वैकल्पिक है। यदि कोई मिलान नहीं मिलता है, तो डिकोड डिफ़ॉल्ट रूप से वापस आ जाएगा। यदि डिफ़ॉल्ट को छोड़ दिया जाता है, तो डिकोड स्टेटमेंट NULL (कोई मिलान नहीं मिला) लौटाएगा।
उदाहरण
चुनें |
इसे बेहतर ढंग से समझने के लिए यह एल्गोरिथम है
1) Oracle चरण कोड का स्तंभ मान प्राप्त करता है
2) यदि चरण कोड ='P' तो लंबित
3) यदि चरण कोड ='C' तो पूर्ण
4) यदि चरण कोड ='T' फिर समाप्त हो गया
5) यदि चरण कोड ='S' तो स्टैंडबाय
6) यदि चरण कोड उपरोक्त में से कोई भी नहीं है, तो डिकोड अज्ञात लौटाता है
7) यदि डिफ़ॉल्ट मौजूद नहीं है यह शून्य देगा
ध्यान दें कि Oracle डिकोड कॉलम नाम या एक्सप्रेशन को निर्दिष्ट करके शुरू होता है, इसके बाद ट्रांसफॉर्मेशन वैल्यू के मिलान-जोड़े का सेट होता है। डिकोड स्टेटमेंट के अंत में हमें एक डिफ़ॉल्ट मान मिलता है। डिफ़ॉल्ट मान डिकोड को बताता है कि यदि कोई स्तंभ मान युग्मित सूची में नहीं है तो क्या प्रदर्शित करना है।
हम एल्गोरिथम को इस तरह कह सकते हैं
if (expr ==search1) return(result1); elseif (expr ==search2) return( result2); …elseif (expr ==searchn) return(resultn); else return(default); |
Oracle Decode के लिए याद रखने योग्य कुछ और बिंदु
1) एक DECODE फ़ंक्शन में, Oracle दो नल को समतुल्य मानता है। यदि expr शून्य है, तो Oracle पहली खोज का परिणाम देता है जो कि भी शून्य है।
SQL> दोहरे से डिकोड (शून्य, शून्य, 1,0) चुनें;
DECODE(NULL,NULL,1,0)
——————
1
2) DECODE फ़ंक्शन में घटकों की अधिकतम संख्या, जिसमें expr, खोज, परिणाम और डिफ़ॉल्ट शामिल हैं, 255 है।
3) ओरेकल स्वचालित रूप से अभिव्यक्ति के मूल्यों को परिवर्तित करता है और तुलना_वैल्यू को पहले तुलना_वैल्यू के डेटाटाइप में परिवर्तित करता है। साथ ही return_value का डेटाटाइप पहले return_value के डेटाटाइप में बदल जाता है। यदि पहले परिणाम में डेटाटाइप CHAR है या यदि पहला परिणाम शून्य है, तो Oracle रिटर्न मान को डेटाटाइप VARCHAR2
में बदल देता हैOracle में डिकोड कैसे पढ़ें
हम डिकोड स्टेटमेंट को इफ-इफ स्टेटमेंट के रूप में पढ़ सकते हैं। डिकोड स्टेटमेंट में पहला तर्क आम तौर पर कुछ कॉलम होगा जहां डेटा परिवर्तन की आवश्यकता होती है। उसके बाद का तर्क इसके साथ पहले तर्क के मूल्यों की तुलना करेगा
Oracle sql डिकोड प्रोसेसिंग के बारे में अक्सर पूछे जाने वाले प्रश्न
(1)हमने देखा है कि "expr" को निर्दिष्ट मानों के बराबर किया जा रहा है, क्या हम असमानता ऑपरेटरों जैसे> या का उपयोग कर सकते हैं
आइए एक उदाहरण लेते हैं
DECODE चुनें(वेतन,<50000, सैल + 1000, सैल + 500) अंतिम_सैलरी FROM emp;
पंक्ति 2 पर त्रुटि
ORA-00936:लापता अभिव्यक्ति
इसलिए हम इसका इस्तेमाल नहीं कर सकते। हमें इसे करने के लिए केस स्टेटमेंट का उपयोग करने की आवश्यकता है। या हम इसे प्राप्त करने के लिए डीकोड में फ़ंक्शन पर हस्ताक्षर कर सकते हैं
डिकोड चुनें(साइन (वेतन- 50000), -1,साल + 1000, सैल + 500) एएमपी से अंतिम_वेतन;
मूल रूप से, हमें अपने को परिवर्तित करने की आवश्यकता है कुछ सूत्र की आवश्यकता है जो कुछ मूल्य का मूल्यांकन कर सकता है
col1, col2 डिकोड (abs(col1-col2), 0, 'col1 =col2', Col1-col2, 'col1> col2′,'col1
CASE PL/SQL निर्माण के रूप में काम कर सकता है लेकिन DECODE का उपयोग केवल SQL कथनों में किया जाता है। CASE को किसी फ़ंक्शन/प्रक्रिया के पैरामीटर के रूप में उपयोग किया जा सकता है। स्थिरता, DECODE नहीं करता
DECODE केवल अदिश मानों के साथ काम कर सकता है लेकिन CASE तार्किक ऑपरेटरों, विधेय और खोजने योग्य उपश्रेणियों के साथ काम कर सकता है।
हाँ DECODE फ़ंक्शन में घटकों की अधिकतम संख्या, जिसमें expr, खोज, परिणाम और डिफ़ॉल्ट शामिल हैं, 255 है।
संबंधित लिंक
डिकोड पर Oracle दस्तावेज़
sql क्वेरी कैसे लिखें
मूल Sql कथन
ओरेकल केस स्टेटमेंट युक्तियों और उदाहरणों के साथ समझाया गया
SQL ट्यूटोरियल