जब किसी संख्यात्मक कॉलम में NULL हो, तो गणना (जैसे गुणा) का परिणाम NULL हो जाता है। COALESCE() का उपयोग करके NULL को डिफ़ॉल्ट मान (जैसे 1) से बदल सकते हैं।
टेबल बनाएं
mysql> CREATE TABLE DemoTable1842 (
NumberOfItems INT,
Amount INT
);
डेटा डालें (एक पंक्ति में NULL)
mysql> INSERT INTO DemoTable1842 VALUES(10, 40); mysql> INSERT INTO DemoTable1842 VALUES(20, 5); mysql> INSERT INTO DemoTable1842 VALUES(NULL, 10);
डेटा देखें
+---------------+--------+ | NumberOfItems | Amount | +---------------+--------+ | 10 | 40 | | 20 | 5 | | NULL | 10 | +---------------+--------+
COALESCE के साथ गुणा करें
mysql> SELECT NumberOfItems, Amount,
COALESCE(NumberOfItems, 1) * Amount AS Total
FROM DemoTable1842;
आउटपुट:
+---------------+--------+-------+ | NumberOfItems | Amount | Total | +---------------+--------+-------+ | 10 | 40 | 400 | | 20 | 5 | 100 | | NULL | 10 | 10 | +---------------+--------+-------+
व्याख्या
COALESCE(NumberOfItems, 1)→ यदिNumberOfItemsNULL है तो 1 लौटाता है, अन्यथा वही मान।- तीसरी पंक्ति:
1 * 10 = 10(NULL के बजाय)।
COALESCE vs IFNULL
| फ़ंक्शन | पैरामीटर | मानक |
|---|---|---|
COALESCE | 2 या अधिक | ANSI SQL (पोर्टेबल) |
IFNULL | केवल 2 | MySQL-विशिष्ट |
अन्य उपयोग
COALESCE(col1, col2, col3, 0)- पहला गैर-NULL मान चुनें।COALESCE(price, 0) * qty- NULL कीमत को 0 मानें।