Данная таблица:
ID ONE TWO X1 15 15 X2 10 - X3 - 20
Этот запрос:
SELECT (ONE + TWO) FROM (TABLE)
Просто возвращает сумму значений X1, но не остальных, поскольку хотя бы один столбец имеет нулевое значение. Как я могу все еще добавить их, даже если есть ноль? то есть считать ноль как 0, может быть?
X1
SELECT (COALESCE(ONE, 0) + COALESCE(TWO, 0)) FROM (TABLE)
COALESCE вернет первое ненулевое значение, найденное в параметрах слева направо.Таким образом, когда первое поле равно нулю, оно принимает 0.
COALESCE
Таким образом, X2 приведет к 10 + 0 = 10
X2
10 + 0 = 10
уже есть хороший ответ, но я думаю, что стоит упомянуть antonpug (если он не знает), что причина этого в том, что NULL не является значением, которое можно сравнивать или суммировать.
NULL не равно 0 или '' (пустая строка), поэтому каждая операция с NULL приведет к NULL (10 + NULL = NULL), даже (NULL = NULL) будет иметь значение FALSE