SQL-запрос для добавления значений двух столбцов, содержащих нулевые значения? - PullRequest
7 голосов
/ 27 марта 2012

Данная таблица:

    ID   ONE   TWO
    X1   15    15
    X2   10    -
    X3   -     20

Этот запрос:

SELECT (ONE + TWO) FROM (TABLE)

Просто возвращает сумму значений X1, но не остальных, поскольку хотя бы один столбец имеет нулевое значение. Как я могу все еще добавить их, даже если есть ноль? то есть считать ноль как 0, может быть?

Ответы [ 2 ]

10 голосов
/ 27 марта 2012
SELECT (COALESCE(ONE, 0) + COALESCE(TWO, 0)) FROM (TABLE) 

COALESCE вернет первое ненулевое значение, найденное в параметрах слева направо.Таким образом, когда первое поле равно нулю, оно принимает 0.

Таким образом, X2 приведет к 10 + 0 = 10

1 голос
/ 27 марта 2012

уже есть хороший ответ, но я думаю, что стоит упомянуть antonpug (если он не знает), что причина этого в том, что NULL не является значением, которое можно сравнивать или суммировать.

NULL не равно 0 или '' (пустая строка), поэтому каждая операция с NULL приведет к NULL (10 + NULL = NULL), даже (NULL = NULL) будет иметь значение FALSE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...