SQLite में, coalesce()
फ़ंक्शन अपने पहले गैर-नल तर्क की एक प्रति देता है, या NULL यदि सभी तर्क NULL हैं।
यह ifnull()
. के समान है फ़ंक्शन, सिवाय इसके कि coalesce()
दो से अधिक तर्क स्वीकार करता है (ifnull()
केवल दो तर्क स्वीकार करता है)।
सिंटैक्स
वाक्य रचना इस प्रकार है:
coalesce(X,Y,...)
इसका मतलब यह है कि आप दो या दो से अधिक तर्क दे सकते हैं। फ़ंक्शन तब पहला लौटाएगा जो NULL नहीं है।
उदाहरण
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
SELECT coalesce(NULL,1);
परिणाम:
1
यहां मैंने दो तर्क दिए और coalesce()
पहला गैर-शून्य मान लौटाया, जो इस मामले में 1 . है ।
अधिक उदाहरण
coalesce()
. कैसे प्रदर्शित करने के लिए यहां और विविधताएं दी गई हैं प्रत्येक मामले को संभालता है।
.mode line
SELECT
coalesce(NULL,NULL,1,2,3),
coalesce(1,NULL,2,3),
coalesce(NULL,3,2,1),
coalesce(1,2,3,NULL),
coalesce(NULL,NULL);
परिणाम:
coalesce(NULL,NULL,1,2,3) = 1 coalesce(1,NULL,2,3) = 1 coalesce(NULL,3,2,1) = 3 coalesce(1,2,3,NULL) = 1 coalesce(NULL,NULL) =
तो यह बहुत सीधा है। यह केवल पहला तर्क देता है जो NULL नहीं है, चाहे कितने भी तर्क दिए गए हों।
यह भी ध्यान दें कि यदि सभी तर्क NULL हैं, तो यह NULL देता है।
डेटाबेस उदाहरण
यहां coalesce()
. का उपयोग करने का एक उदाहरण दिया गया है डेटाबेस क्वेरी में कार्य करें।
.mode column
SELECT
CustomerId,
coalesce(Fax, 'N/A') AS Fax
FROM Customer
LIMIT 5;
परिणाम:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5
यह coalesce()
. का उपयोग किए बिना कैसा दिखता है समारोह:
.mode column
SELECT
CustomerId,
Fax
FROM Customer
LIMIT 5;
परिणाम:
CustomerId Fax ---------- ------------------ 1 +55 (12) 3923-5566 2 3 4 5 +420 2 4172 5555
तो coalesce()
फ़ंक्शन NULL के बजाय एक सार्थक स्ट्रिंग लौटाने के लिए उपयोगी हो सकता है।
तीन तर्कों के साथ
तीसरा तर्क जोड़ने का एक उदाहरण यहां दिया गया है। यह हमें NULL पर पहुंचने से पहले कई विकल्पों के माध्यम से चलने की अनुमति देता है।
SELECT
CustomerId,
coalesce(Fax, Email, 'N/A') AS "Fax/Email"
FROM Customer
LIMIT 5;
परिणाम:
CustomerId Fax/Email ---------- ---------------------- 1 +55 (12) 3923-5566 2 [email protected] 3 [email protected] 4 [email protected] 5 +420 2 4172 5555