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
SUMif it's an option to sum up a column of a result set instead of expressions (SUMignoresNULLvalues) - wrap columns with:
COALESCE(column, 0)(COALESCEtakes the first non-null argument)
Posted by Natalie Zeumann to makandra dev (2018-03-15 15:31)