SQL सर्व्हरमध्ये COALESCE फंक्शन कसे वापरावे

तुम्‍हाला तुमच्‍या क्‍वेरीमध्‍ये NULL व्हॅल्यूज हाताळण्‍याची आवश्‍यकता आहे अशी परिस्थिती तुम्‍हाला कधी आली आहे का? उदाहरणार्थ, जेव्हा एखादा स्तंभ NULL असेल तेव्हा तुम्हाला डीफॉल्ट मूल्य प्रदर्शित करायचे असेल किंवा अनेक स्तंभ एकामध्ये एकत्र करा आणि पहिले नॉन-नल मूल्य निवडा. या ब्लॉग पोस्टमध्ये, आम्ही तुम्हाला ही कार्ये आणि बरेच काही साध्य करण्यासाठी SQL सर्व्हरमध्ये COALESCE फंक्शन कसे वापरायचे ते दर्शवू.

COALESCE कार्य काय आहे?

COALESCE फंक्शन हे SQL सर्व्हरमधील एक अंगभूत फंक्शन आहे जे अभिव्यक्तीच्या सूचीचे मूल्यमापन करते आणि NULL नसलेले पहिले परत देते. सर्व अभिव्यक्ती NULL असल्यास, फंक्शन NULL मिळवते.

COALESCE फंक्शनची वाक्यरचना आहे:

COALESCE (expression1, expression2, ..., expressionN)

अभिव्यक्ती कोणत्याही प्रकारच्या असू शकतात, परंतु ते एकमेकांशी सुसंगत असले पाहिजेत. निकालाचा डेटा प्रकार सर्वोच्च प्राधान्य असलेल्या अभिव्यक्तीद्वारे निर्धारित केला जातो.

COALESCE फंक्शन कसे वापरावे

SQL सर्व्हरमध्ये COALESCE फंक्शन कसे वापरायचे याची काही उदाहरणे पाहू.

उदाहरण 1: जेव्हा स्तंभ NULL असतो तेव्हा डीफॉल्ट मूल्य प्रदर्शित करा

समजा आमच्याकडे Products नावाचे टेबल आहे जे काही उत्पादनांची माहिती संग्रहित करते, जसे की त्यांचे नाव, किंमत आणि श्रेणी. काही उत्पादनांना श्रेणी नियुक्त केलेली नाही, म्हणून Category स्तंभ त्यांच्यासाठी शून्य आहे.

जर आम्हाला उत्पादने त्यांच्या श्रेणींसह प्रदर्शित करायची असतील, परंतु 'अज्ञात' सारख्या डीफॉल्ट मूल्याने NULL मूल्ये बदलायची असतील, तर आम्ही खालीलप्रमाणे COALESCE फंक्शन वापरू शकतो:

SELECT Name, Price, COALESCE(Category, 'Unknown') AS Category
FROM Products;

परिणाम आहे:

जसे तुम्ही बघू शकता, COALESCE फंक्शन NULL नसल्यास Category चे मूल्य परत करते, अन्यथा ते 'अज्ञात' देते.

उदाहरण 2: एकामध्ये अनेक स्तंभ एकत्र करा आणि पहिले नॉन-नल मूल्य निवडा

समजा आमच्याकडे Contacts नावाचे दुसरे टेबल आहे जे काही संपर्कांबद्दल माहिती संग्रहित करते, जसे की त्यांचे नाव, ईमेल, फोन आणि पत्ता. काही संपर्कांमध्ये हे सर्व तपशील भरलेले नाहीत, म्हणून काही कॉलम त्यांच्यासाठी शून्य आहेत.

आम्हाला संपर्क त्यांच्या पसंतीच्या संपर्क पद्धतीसह प्रदर्शित करायचे असल्यास, जे ईमेल, फोन आणि पत्त्यामधील पहिले नॉन-नल व्हॅल्यू आहे, आम्ही खालीलप्रमाणे COALESCE फंक्शन वापरू शकतो:

SELECT Name, COALESCE(Email, Phone, Address) AS PreferredContact
FROM Contacts;

परिणाम आहे:

तुम्ही बघू शकता, COALESCE फंक्शन प्रत्येक संपर्कासाठी ईमेल, फोन आणि पत्त्यामधील पहिले नॉन-नल व्हॅल्यू देते.

हे जुन्या पद्धतीने कसे हाताळायचे आणि COALESCE काय प्रदान करते

एसक्यूएल सर्व्हरमध्ये COALESCE फंक्शन सादर करण्यापूर्वी, आम्हाला आमच्या क्वेरींमध्ये NULL मूल्ये हाताळण्यासाठी इतर पद्धती वापरायच्या होत्या. उदाहरणार्थ, आम्ही ISNULL फंक्शन किंवा CASE अभिव्यक्ती वापरू शकतो.

ISNULL फंक्शन दोन आर्ग्युमेंट घेते आणि NULL नसल्यास पहिले रिटर्न करते, अन्यथा ते दुसरे रिटर्न करते. उदाहरणार्थ:

SELECT Name, ISNULL(Category, 'Unknown') AS Category
FROM Products;

ही क्वेरी दोन वितर्कांसह COALESCE वापरण्यासारखेच परिणाम देते. तथापि, ISNULL आणि COALESCE मध्ये काही फरक आहेत:

  • ISNULL फक्त दोन वितर्क स्वीकारतो, तर COALESCE कितीही वितर्क स्वीकारू शकतो.
  • ISNULL निकालासाठी प्रथम युक्तिवादाचा डेटा प्रकार वापरतो, तर COALESCE CASE अभिव्यक्ती नियमांचे पालन करते आणि मूल्याचा डेटा प्रकार सर्वोच्च प्राधान्यासह परत करते.
  • ISNULL चे मूल्यमापन एकदाच केले जाते, तर COALESCE चे अनेक वेळा मूल्यांकन केले जाऊ शकते. हे कार्यप्रदर्शन आणि परिणामांच्या सुसंगततेवर परिणाम करू शकते, विशेषत: सबक्वेरी किंवा नॉन-डिटरमिनिस्टिक फंक्शन्स वापरताना.

CASE अभिव्यक्ती ही एक सशर्त अभिव्यक्ती आहे जी आम्हाला भिन्न परिस्थितींवर आधारित भिन्न क्रिया करण्यास अनुमती देते. उदाहरणार्थ:

SELECT Name, CASE WHEN Category IS NOT NULL THEN Category ELSE 'Unknown' END AS Category
FROM Products;w

ही क्वेरी दोन वितर्कांसह COALESCE वापरण्यासारखेच परिणाम देते. तथापि, CASE आणि COALESCE मध्ये काही फरक आहेत:

  • COALESCE पेक्षा CASE अधिक शब्दशः आणि जटिल आहे, विशेषत: एकाधिक अभिव्यक्तींशी व्यवहार करताना.
  • CASE COALESCE पेक्षा अधिक जटिल तर्क आणि परिस्थिती हाताळू शकते, जे फक्त NULL मूल्यांसाठी तपासते.
  • क्वेरी ऑप्टिमायझर आणि अंमलबजावणी योजनेवर अवलंबून CASE आणि COALESCE चे भिन्न कार्यप्रदर्शन परिणाम असू शकतात.

तुम्ही बघू शकता, COALESCE फंक्शन SQL सर्व्हरमध्ये NULL व्हॅल्यूज हाताळण्यासाठी एक सोपा आणि अधिक सुसंगत मार्ग प्रदान करते. हे ISNULL फंक्शन किंवा CASE अभिव्यक्तीपेक्षा अधिक लवचिक आणि सुसंगत आहे.

निष्कर्ष

या ब्लॉग पोस्टमध्ये, आम्ही आमच्या प्रश्नांमध्ये NULL मूल्ये हाताळण्यासाठी SQL सर्व्हरमधील COALESCE फंक्शन कसे वापरायचे ते शिकलो. जेव्हा एखादा कॉलम NULL असतो तेव्हा डिफॉल्ट व्हॅल्यू कशी दाखवायची किंवा अनेक कॉलम्स एकामध्ये एकत्र करून पहिले नॉन-NULL व्हॅल्यू कसे निवडायचे याची काही उदाहरणे आम्ही पाहिली. आम्ही ISNULL आणि CASE सारख्या इतर पद्धतींशी COALESCE कार्याची तुलना देखील केली आणि त्यांचे फायदे आणि तोटे यावर चर्चा केली.