मारियाडीबी में, COALESCE()
ऑपरेटर सूची में पहला गैर-शून्य मान देता है, या यदि कोई गैर-शून्य मान नहीं है तो NULL देता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
COALESCE(value,...)
उदाहरण
प्रदर्शित करने के लिए यहां एक सरल उदाहरण दिया गया है:
SELECT COALESCE(null, 'Red', 'Black');
परिणाम:
Red
इस मामले में, Red
पहला गैर-शून्य मान था, और इसलिए COALESCE()
वह मान लौटा दिया।
Black
गैर-नल भी था, लेकिन यह Red
. के बाद आया था और इसलिए इसे वापस नहीं किया गया।
डेटाबेस उदाहरण
मान लीजिए कि हम निम्नलिखित क्वेरी चलाते हैं:
SELECT
PetName,
DOB AS "Date of Birth"
FROM Pets;
और हमें निम्नलिखित परिणाम मिलते हैं:
+---------+---------------+ | PetName | Date of Birth | +---------+---------------+ | Fluffy | 2020-11-20 | | Fetch | 2019-08-16 | | Scratch | 2018-10-01 | | Wag | 2020-03-15 | | Tweet | 2020-11-28 | | Fluffy | 2020-09-17 | | Bark | NULL | | Meow | NULL | +---------+---------------+
हम देख सकते हैं कि अंतिम दो पंक्तियों में DOB कॉलम में NULL मान हैं।
अगर हम NULL
. को बदलना चाहते हैं दूसरे मान के साथ, हम क्वेरी को इस प्रकार बदल सकते हैं:
SELECT
PetName,
COALESCE(DOB, 'None Supplied') AS "Date of Birth"
FROM Pets;
परिणाम:
+---------+---------------+ | PetName | Date of Birth | +---------+---------------+ | Fluffy | 2020-11-20 | | Fetch | 2019-08-16 | | Scratch | 2018-10-01 | | Wag | 2020-03-15 | | Tweet | 2020-11-28 | | Fluffy | 2020-09-17 | | Bark | None Supplied | | Meow | None Supplied | +---------+---------------+
अभिव्यक्ति
COALESCE()
पहली अभिव्यक्ति का वर्तमान मान देता है जो प्रारंभ में NULL
. का मूल्यांकन नहीं करता है . इसलिए, अगर हम इस तरह से एक व्यंजक पास करते हैं:
SELECT COALESCE( null, 5 * 2 );
हमें यह मिलता है:
10
जब सभी मान NULL हों
यदि सभी मान NULL
हैं , COALESCE()
रिटर्न NULL
:
SELECT COALESCE( null, null );
परिणाम:
NULL
COALESCE()
बनाम IFNULL()
जब दो मानों के साथ प्रयोग किया जाता है, COALESCE()
IFNULL
. जैसा ही काम करता है :
SET @a = null, @b = 52;
SELECT
COALESCE(@a, @b),
IFNULL(@a, @b);
परिणाम:
+------------------+----------------+ | COALESCE(@a, @b) | IFNULL(@a, @b) | +------------------+----------------+ | 52 | 52 | +------------------+----------------+
अवैध तर्क गणना
COALESCE()
का उपयोग करना बिना किसी तर्क के त्रुटि उत्पन्न होती है:
SELECT COALESCE();
परिणाम:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1पर ')' के पास उपयोग करने के लिए सही सिंटैक्स के लिए अपने मारियाडीबी सर्वर संस्करण से संबंधित मैनुअल की जांच करें।