सिंगल रो के मानों का योग करने के लिए निम्न सिंटैक्स का उपयोग करें:
केस 1: यदि कॉलम में NULL मान नहीं है
SELECT yourColumnName1 + yourColumnName2 + yourColumnName3 + ... + N AS anyVariableName FROM yourTableName;
केस 2: यदि कॉलम में NULL मान है
SELECT IFNULL(yourColumnName1, 0) + IFNULL(yourColumnName2, 0) + IFNULL(yourColumnName3, 0) + ... + N AS anyVariableName FROM yourTableName;
उदाहरण के साथ समझें
सबसे पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE SumValueOfSingleRow (
-> Id INT NOT NULL AUTO_INCREMENT,
-> FirstValue INT,
-> SecondValue INT,
-> ThirdValue INT,
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (0.70 sec)
रिकॉर्ड डालें
mysql> INSERT INTO SumValueOfSingleRow(FirstValue, SecondValue, ThirdValue) VALUES(1, 0, 1); Query OK, 1 row affected (0.11 sec) mysql> INSERT INTO SumValueOfSingleRow(FirstValue, SecondValue, ThirdValue) VALUES(1, NULL, 0); Query OK, 1 row affected (0.19 sec) mysql> INSERT INTO SumValueOfSingleRow(FirstValue, SecondValue, ThirdValue) VALUES(NULL, NULL, NULL); Query OK, 1 row affected (0.09 sec)
सभी रिकॉर्ड देखें
mysql> SELECT * FROM SumValueOfSingleRow;
आउटपुट
+----+------------+-------------+------------+ | Id | FirstValue | SecondValue | ThirdValue | +----+------------+-------------+------------+ | 1 | 1 | 0 | 1 | | 2 | 1 | NULL | 0 | | 3 | NULL | NULL | NULL | +----+------------+-------------+------------+ 3 rows in set (0.00 sec)
केस 1 का परिणाम (NULL हैंडल नहीं करता)
mysql> SELECT FirstValue + SecondValue + ThirdValue AS SingleRowSum
-> FROM SumValueOfSingleRow;
आउटपुट
+--------------+ | SingleRowSum | +--------------+ | 2 | | NULL | | NULL | +--------------+ 3 rows in set (0.06 sec)
ऊपर के आउटपुट में, क्वेरी NULL केस को हैंडल नहीं करती।
केस 2 का परिणाम (सही परिणाम)
mysql> SELECT IFNULL(FirstValue, 0) + IFNULL(SecondValue, 0) + IFNULL(ThirdValue, 0)
-> AS SingleRowSum FROM SumValueOfSingleRow;
आउटपुट
+--------------+ | SingleRowSum | +--------------+ | 2 | | 1 | | 0 | +--------------+ 3 rows in set (0.06 sec)
IFNULL() फ़ंक्शन NULL को 0 में बदल देता है, जिससे सही योग प्राप्त होता है।