我有这张表(由 SQL 查询制成):
Row 1 Row 2
2 1
3 NULL
我想减去 2 列,所以我只选择这样:
Select Row1 - Row2
From table
但后来我得到了这个结果:
1
NULL
代替:
1
3
我怎样才能得到最后的结果?
我有这张表(由 SQL 查询制成):
Row 1 Row 2
2 1
3 NULL
我想减去 2 列,所以我只选择这样:
Select Row1 - Row2
From table
但后来我得到了这个结果:
1
NULL
代替:
1
3
我怎样才能得到最后的结果?
你得到这个的原因是因为任何带有 NULL 的数学运算都会产生 NULL所以在进行运算时,所有值都应该被读取为NULL=0。
使用ISNULL()
因此
SELECT ISNULL([Row 1], 0) - ISNULL([Row 2], 0) from YourTable
如果 expr1 不为 NULL,则 IFNULL() 返回 expr1;否则返回 expr2。
也许还看看SQL NULL Functions
如果 expr 为 NULL,则 ISNULL() 返回 1,否则返回 0。
在sql中任何减去NULL的东西总是NULL所以你需要将NULL转换为零
SELECT ISNULL(ROW1,0)-ISNULL(ROW2,0) FROM YOUR_TABLE