我有这个表(由SQL查询构成):
Row 1 Row 2
2 1
3 NULL
我想减去2列,所以我选择这样:
Select Row1 - Row2
From table
但后来我得到了这个结果:
1
NULL
而不是:
1
3
如何才能获得最后的结果?
答案 0 :(得分:17)
答案 1 :(得分:5)
你得到这个的原因是因为任何带NULL的数学运算都会产生NULL 因此在执行操作时,所有值都应该读作 NULL = 0 。
因此
SELECT ISNULL([Row 1], 0) - ISNULL([Row 2], 0) from YourTable
答案 2 :(得分:0)
如果expr1不为NULL,则IFNULL()返回expr1;否则返回 expr2。
也许还会看看SQL NULL Functions
The ISNULL from MySQL is used to check if a value is null
如果expr为NULL,则ISNULL()返回1,否则返回0。
答案 3 :(得分:0)
在sql中任何减去NULL的值都为零,因此它始终为NULL,因此您需要将NULL转换为零
SELECT ISNULL(ROW1,0)-ISNULL(ROW2,0) FROM YOUR_TABLE