MySQL स्टोर्ड प्रोसीजर: COALESCE() से NULL लोकल वेरिएबल संभालना
स्टोर्ड प्रोसीजर में घोषित लोकल वेरिएबल (DECLARE) का प्रारंभिक मान NULL होता है। COALESCE() फंक्शन का उपयोग करके NULL को डिफॉल्ट मान (जैसे 0) से बदलकर गणना की जा सकती है।
उदाहरण: दो NULL वेरिएबल का योग
DELIMITER //
CREATE PROCEDURE local_VariableDemo()
BEGIN
DECLARE value1 INT;
DECLARE value2 INT;
SELECT value1, value2; -- दोनों NULL दिखेंगे
SELECT CONCAT('After checking local variable is null the sum = ',
COALESCE(value1, 0) + COALESCE(value2, 0)) AS Result;
END //
DELIMITER ;
प्रोसीजर कॉल करें
CALL local_VariableDemo();
परिणाम:
+--------+--------+ | value1 | value2 | +--------+--------+ | NULL | NULL | +--------+--------+ +------------------------------------------------------------------+ | Result | +------------------------------------------------------------------+ | After checking local variable is null the sum is = 0 | +------------------------------------------------------------------+
COALESCE() कैसे काम करता है?
COALESCE(val1, val2, ..., default)— पहला नॉन-NULL मान लौटाता हैCOALESCE(value1, 0)— यदि value1 NULL है तो 0, अन्यथा value1COALESCE(NULL, 0)= 0COALESCE(5, 0)= 5
IFNULL() vs COALESCE()
| IFNULL() | COALESCE() | |
|---|---|---|
| पैरामीटर | 2 | 2 या अधिक |
| मानक | MySQL-विशिष्ट | ANSI SQL मानक |
| उपयोग | सरल केस | एकाधिक फॉलबैक |