如何在 MySQL 中求單個行的值之和?


您可以使用以下語法來計算單個行的值之和:

情況 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)

使用 insert 命令在表中插入一些記錄。查詢如下所示:

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)

使用 select 語句顯示錶中的所有記錄。查詢如下所示:

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,則不會獲得正確的結果。

讓我們檢查上面討論的情況 1。查詢如下所示:

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)

更新時間: 2019-07-30

1K+ 瀏覽量

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.