एसक्यूएल प्रश्नों का संकलन करते समय, यह अक्सर उठता हैऐसी स्थिति जब डेटा लाते समय, कई स्तंभों के मूल्यों की तुलना करना और उस डेटा को प्रदर्शित करना आवश्यक है जिसमें डेटा नहीं है (खाली नहीं)। Coalesce अभिव्यक्ति पूरी तरह से इस समस्या को हल करती है। इस लेख में आपको कोलेसस एसक्यूएल अभिव्यक्ति, उपयोग की विशेषताओं का एक विवरण, साथ ही उदाहरणों का पूरा विवरण मिलेगा।
Coalesce के साथ गैर-रिक्त मान आउटपुट करना। विशेषताएं:
Sql Coalesce उपयोग सुविधाओं पर विचार करें:
- किसी भी तर्क को निर्दिष्ट करने की अनुमति देता है (इसनुल / एनएलएल / एनवीएल 2 के विपरीत, जिसमें सीमित संख्या में तर्क हैं)।
- एक तर्क के रूप में उपश्रेणियाँ ले सकते हैं।
- के बराबर परिणाम देता है सबसे पहला यदि कोई गैर-शून्य मान नहीं मिला है, तो एक अशक्त मान, या अशक्त।
- Sql Coalesce का उपयोग एक गैर-रिक्त मान का चयन करने के लिए एक क्लॉज में किया जा सकता है, और यह भी स्पष्ट करने के लिए कि खाली मान वाले स्तंभों के सेट की अनुमति नहीं है (/ अनुमति है)।
- यह अभिव्यक्ति का उपयोग करने के समान हैस्थिति, जो प्रत्येक तर्क को क्रमिक रूप से स्थिति के लिए जांचती है जब तर्क 1 अशक्त नहीं होता है तो वाद 1। मूल रूप से, Coalesce उपयोग में आसानी के लिए बनाया गया एक शॉर्टकट है, और कई DBMSs में, क्वेरी ऑप्टिमाइज़र केस के लिए Coalesce अभिव्यक्ति को फिर से लिखते हैं।
- Sql Coalesce फ़ंक्शन सभी प्रमुख रिलेशनल डेटाबेस मैनेजमेंट सिस्टम में पाए जाते हैं।
कोलेसस सिंटैक्स
जिस किसी ने कभी भी कॉल्ससी का उपयोग किया हैएसक्यूएल-प्रश्नों की रचना, जानता है कि इस अभिव्यक्ति का वाक्यविन्यास अत्यंत सरल है। यह अल्पविराम द्वारा अलग किए गए कोष्ठक में नल के लिए जाँच किए गए तर्कों को निर्दिष्ट करने के लिए पर्याप्त है। यदि हम मानते हैं कि तर्कों का नाम arg1, arg2,… argN है, तो Coalesce का सिंटैक्स निम्नानुसार होगा:
कोलेसस (arg1, arg2, ... argN)।
आइए इस अभिव्यक्ति के तंत्र का अध्ययन करने के लिए कई तालिकाओं को तैयार करें।
टेबल तैयार करना
Coalesce sql डिस्क्रिप्शन को बेहतर ढंग से समझने के लिए, आइए डेटाबेस में रियल एस्टेट ऑब्जेक्ट्स पर जानकारी युक्त दो टेबल बनाएं।
पहली तालिका, क्षेत्र, में अचल संपत्ति की वस्तुओं और उनके क्षेत्र के नाम होते हैं। क्षेत्र निर्दिष्ट किया जा सकता है (area_yt) या घोषित (area_decl)।
ईद | OBJECT_NAME | area_yt | area_decl |
1 | भवन 1 | 116,2 | 114 |
2 | निर्माण कार्य प्रगति पर है 1 | 568 | |
3 | कमरा 1 | 64,7 | |
4 | कमरा 2 | 34,2 | |
5 | भूमि का भूखंड १ | 112 | 111,6 |
6 | भवन 1 | ||
7 | कमरा 3 | 27,9 | |
8 | भवन २ | 37,2 | 36,4 |
9 | भवन २ |
दूसरी Basic_characteristic तालिका देंएक अचल संपत्ति वस्तु की मुख्य विशेषताओं पर जानकारी शामिल है - विस्तार, गहराई, क्षेत्र, क्षेत्र, ऊँचाई।
ईद | OBJECT_NAME | एक्सटेंशन | गहराई | क्षेत्र | क्षेत्र | ऊंचाई |
1 | भवन 1 | 892,4 | 30 | |||
2 | भवन २ | 48 | ||||
3 | भवन 1 | 164,7 | ||||
4 | भूमि का भूखंड १ | |||||
5 | कमरा 1 | 23,6 | ||||
6 | कमरा 2 | 34,7 | ||||
7 | कमरा 3 | 19,8 |
हमने Coalesce sql सिंटैक्स, विवरण, उपयोग सुविधाओं को देखा, और चलो सीधे उदाहरणों पर चलते हैं।
उपयोग करने के उदाहरण
Coalesce अभिव्यक्ति के लिए वाक्य रचना अत्यंत सरल है,हालांकि, यह याद रखना महत्वपूर्ण है कि कमांड तर्क सूची में पाए गए FIRST गैर-रिक्त मान को वापस कर देगा। यह टिप्पणी बहुत महत्वपूर्ण है, इसलिए अभिव्यक्ति के तर्कों को महत्व के क्रम में आदेश दिया जाना चाहिए। सिद्धांत को समझने का सबसे आसान तरीका क्षेत्र तालिका है। एक क्वेरी बनाएं जो संपत्ति के नाम का चयन करता है, साथ ही साथ क्षेत्र का मूल्य भी:
क्षेत्र का चयन करें। क्षेत्र से |
और परिणाम प्राप्त करें:
ईद | OBJECT_NAME | संगठित होना |
1 | भवन 1 | 116,2 |
2 | निर्माण कार्य प्रगति पर है 1 | 568 |
3 | कमरा 1 | 64,7 |
4 | कमरा 2 | 34,2 |
5 | भूमि का भूखंड १ | 112 |
6 | भवन 1 | |
7 | कमरा 3 | 27,9 |
8 | भवन २ | 37,2 |
9 | भवन २ |
ऑब्जेक्ट "बिल्डिंग 1" के लिए, "लैंड प्लॉट 1" और"बिल्डिंग 2" क्षेत्र के दोनों मूल्यों को भरा गया था, लेकिन प्राथमिकता वह क्षेत्र था जो निर्दिष्ट किया गया था, क्योंकि हमने इसे पहले तर्कों की सूची में निर्दिष्ट किया था। कॉलेसस अभिव्यक्ति ने पहले गैर-रिक्त मान पाया और इसे आगे की स्कैन को रोकते हुए इसे डंप कर दिया। यह क्वेरी निर्माण सही है, क्योंकि निर्दिष्ट क्षेत्र घोषित एक से अधिक विशिष्ट है। यदि हमने घोषित क्षेत्र को पहले तर्क के रूप में निर्दिष्ट किया था, तो यदि तालिका का यह क्षेत्र भरा हुआ था, तो यह प्राथमिकता में होगा।
चयन का उपयोग करने के अलावा, बहुत बारकोलेस अभिव्यक्ति को एक खंड के साथ लागू किया जाता है। यह आपको उन परिणामों से कटने की अनुमति देता है जिनमें फ़ील्ड्स की सूची के मान रिक्त हैं (या इसके विपरीत, परिणाम में केवल उन मानों को शामिल करें जहां फ़ील्ड की सूची भरी नहीं गई है)। यह स्थिति हर जगह होती है: उदाहरण के लिए, उद्यम में, जब एक नए कर्मचारी को पंजीकृत करते हैं, तो उसके बारे में केवल बुनियादी जानकारी डेटाबेस में दर्ज की गई थी, और विस्तृत जानकारी भरने के बाद "बाद के लिए" छोड़ दिया गया था। धीरे-धीरे "अंतराल" आते हैं - या तो चेक से पहले, या छुट्टी पर किसी कर्मचारी को भेजते समय / व्यापार यात्रा / बीमार छुट्टी।
आइए मुख्य विशेषताओं अचल संपत्ति वस्तुओं के साथ तालिका से चुनें, जिसके लिए कोई भी विशिष्ट मान नहीं भरा गया है:
Id, object_name चुनें Basic_characteristic से जहां सहवर्ती (विस्तार, गहराई, क्षेत्र, क्षेत्र, ऊँचाई) शून्य है |
इस अनुरोध के लिए, तालिका में एक मैच है - "लैंड प्लॉट 1" ऑब्जेक्ट, जिसमें विशेषताओं वाले सभी फ़ील्ड खाली हैं:
ईद | OBJECT_NAME |
4 | भूमि का भूखंड १ |
हम आशा करते हैं कि हमारे विस्तृत कोलेसस सीक्ल विवरण ने आपको इस अभिव्यक्ति का उपयोग करने की सभी विशेषताओं को समझने में मदद की, साथ ही साथ महत्वपूर्ण बारीकियों से भी निपटने में मदद की।