Don't sum up columns with + in a SQL query if NULL-values can be present.

Updated . Posted . Visible to the public. Repeats.

Don't sum up columns with + in a sql-query if NULL-Values can be present.

MySQL and PostgreSQL cannot sum up NULL values with the + value. The sum value will be NULL.

MySQL:

mysql> select 1 + 2 + 3;
+-----------+
| 1 + 2 + 3 |
+-----------+
|         6 |
+-----------+
1 row in set (0,00 sec)

mysql> select 1 + NULL + 3;
+--------------+
| 1 + NULL + 3 |
+--------------+
|         NULL |
+--------------+
1 row in set (0,00 sec)

Postgres:


test_database=# select 1 + 2 + 3;

 ?column? 
----------
        6
(1 row)

test_database=# select 1 + NULL + 3;

 ?column? 
----------
         
(1 row)

If you want to do additions in the database:

  • use SUM if it's an option to sum up a column of a result set instead of expressions (SUM ignores NULL values)
  • wrap columns with: COALESCE(column, 0)(COALESCE takes the first non-null argument)
Natalie Zeumann
Last edit
Arne Hartherz
License
Source code in this card is licensed under the MIT License.
Posted by Natalie Zeumann to makandra dev (2018-03-15 15:31)