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)
Profile picture of Natalie Zeumann
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)