SQL минус 2 столбца - с нулевыми значениями

У меня есть эта таблица (сделанная из SQL-запроса):

Row 1 Row 2 
2     1    
3     NULL 

И я хочу минус 2 столбца, поэтому я просто выбираю так:

Select Row1 - Row2
From table

Но тогда я получаю этот результат:

1
NULL

вместо:

1
3

Как я могу получить последний результат?

Ответ 1

Попробуйте:

SELECT ISNULL([Row 1], 0) - ISNULL([Row 2], 0) from YourTable

Для получения дополнительной информации посетите ISNULL

Ответ 2

Причина, по которой вы получили это, состоит в том, что Любая математическая операция с NULL производит NULL. Таким образом, при выполнении операции все значения следует читать как NULL = 0.

С ISNULL()

Следовательно

SELECT ISNULL([Row 1], 0) - ISNULL([Row 2], 0) from YourTable

Ответ 3

MySQL, эквивалентный ISNULL, является IFNULL

Если expr1 не NULL, IFNULL() возвращает expr1; в противном случае возвращается expr2.

Может также взглянуть на функции SQL NULL

ISNULL из MySQL используется, чтобы проверить, является ли значение пустым

Если expr равен NULL, ISNULL() возвращает 1, в противном случае возвращает 0.

Ответ 4

в sql все, что минус с NULL, то это всегда NULL, поэтому вам нужно преобразовать NULL в ноль

SELECT ISNULL(ROW1,0)-ISNULL(ROW2,0) FROM YOUR_TABLE