दोनों में मुख्य अंतर यह है कि IFNULL
फ़ंक्शन दो तर्क लेता है और पहला तर्क देता है यदि यह NULL
नहीं है या दूसरा यदि पहला है NULL
।
COALESCE
फ़ंक्शन दो या अधिक पैरामीटर ले सकता है और पहला गैर-नल पैरामीटर, या NULL
लौटाता है यदि सभी पैरामीटर शून्य हैं, उदाहरण के लिए:
SELECT IFNULL('some value', 'some other value');
-> returns 'some value'
SELECT IFNULL(NULL,'some other value');
-> returns 'some other value'
SELECT COALESCE(NULL, 'some other value');
-> returns 'some other value' - equivalent of the IFNULL function
SELECT COALESCE(NULL, 'some value', 'some other value');
-> returns 'some value'
SELECT COALESCE(NULL, NULL, NULL, NULL, 'first non-null value');
-> returns 'first non-null value'
अद्यतन करें: MSSQL सख्त प्रकार और पैरामीटर जाँच करता है। इसके अलावा, इसमें IFNULL
नहीं है फ़ंक्शन लेकिन इसके बजाय ISNULL
फ़ंक्शन, जिसे तर्कों के प्रकारों को जानने की आवश्यकता है। इसलिए:
SELECT ISNULL(NULL, NULL);
-> results in an error
SELECT ISNULL(NULL, CAST(NULL as VARCHAR));
-> returns NULL
साथ ही COALESCE
MSSQL में फ़ंक्शन को गैर-शून्य होने के लिए कम से कम एक पैरामीटर की आवश्यकता होती है, इसलिए:
SELECT COALESCE(NULL, NULL, NULL, NULL, NULL);
-> results in an error
SELECT COALESCE(NULL, NULL, NULL, NULL, 'first non-null value');
-> returns 'first non-null value'