MySQL में, COALESCE()
ऑपरेटर सूची में पहला गैर-शून्य मान देता है, या यदि कोई गैर-शून्य मान नहीं है तो NULL देता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
COALESCE(value,...)
उदाहरण
प्रदर्शित करने के लिए यहां एक सरल उदाहरण दिया गया है:
SELECT COALESCE(null, 'Fish', 'Rabbit');
परिणाम:
Fish
इस मामले में, Fish
पहला गैर-शून्य मान था, और इसलिए COALESCE()
वह मान लौटा दिया।
Rabbit
एक गैर-शून्य मान भी था, लेकिन यह Fish
. के बाद आया और इसलिए इसे वापस नहीं किया गया।
जब सभी मान NULL हों
यदि सभी मान NULL
हैं , COALESCE()
रिटर्न NULL
:
SELECT COALESCE( null, null );
परिणाम:
NULL
अभिव्यक्ति
COALESCE()
पहली अभिव्यक्ति का वर्तमान मान देता है जो प्रारंभ में NULL
. का मूल्यांकन नहीं करता है . इसलिए, अगर हम इस तरह से एक व्यंजक पास करते हैं:
SELECT COALESCE( null, 2 * 10 );
हमें यह मिलता है:
20
डेटाबेस उदाहरण
मान लीजिए कि हम निम्नलिखित क्वेरी चलाते हैं:
SELECT
PetName,
PetType
FROM Pets;
और हमें निम्नलिखित परिणाम मिलते हैं:
PetName PetType ------- ------- Meow Cat Woof Dog Tweet Bird Awk NULL Moo Cow Omph NULL
हम देख सकते हैं कि दो पंक्तियों में DOB कॉलम में NULL मान हैं।
अगर हम NULL
. को बदलना चाहते हैं दूसरे मान के साथ, हम क्वेरी को इस प्रकार बदल सकते हैं:
SELECT
PetName,
COALESCE(PetType, 'Unknown') AS "PetType"
FROM Pets;
परिणाम:
PetName PetType ------- ------- Meow Cat Woof Dog Tweet Bird Awk Unknown Moo Cow Omph Unknown
इस मामले में हमने सभी NULL मानों को Unknown
. स्ट्रिंग से बदल दिया है ।
हालांकि यह एक स्ट्रिंग होने की आवश्यकता नहीं है। यहां एक और उदाहरण दिया गया है जो NULL मानों को एक पूर्णांक से बदल देता है:
SELECT
EmployeeName,
Salary,
COALESCE(Salary, 0) AS "Salary (adjusted)"
FROM Employees;
परिणाम:
EmployeeName Salary Salary (adjusted) -------------- ------ ----------------- Homer Einstein NULL 0 Bart Hawking 100000 100000
अवैध तर्क गणना
COALESCE()
का उपयोग करना बिना किसी तर्क के त्रुटि उत्पन्न होती है:
SELECT COALESCE();
परिणाम:
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1