13

我有这张表(由 SQL 查询制成):

Row 1 Row 2 
2     1    
3     NULL 

我想减去 2 列,所以我只选择这样:

Select Row1 - Row2
From table

但后来我得到了这个结果:

1
NULL

代替:

1
3

我怎样才能得到最后的结果?

4

4 回答 4

18

请试试:

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

欲了解更多信息,请访问ISNULL

于 2013-04-08T10:27:30.860 回答
6

你得到这个的原因是因为任何带有 NULL 的数学运算都会产生 NULL所以在进行运算时,所有值都应该被读取为NULL=0

使用ISNULL()

因此

SELECT ISNULL([Row 1], 0) - ISNULL([Row 2], 0) from YourTable
于 2013-04-08T10:34:24.310 回答
1

ISNULL的 MySQL 等价物是IFNULL

如果 expr1 不为 NULL,则 IFNULL() 返回 expr1;否则返回 expr2。

也许还看看SQL NULL Functions

MySQL 的 ISNULL 用于检查值是否为空

如果 expr 为 NULL,则 ISNULL() 返回 1,否则返回 0。

于 2019-09-24T04:06:24.517 回答
1

在sql中任何减去NULL的东西总是NULL所以你需要将NULL转换为零

SELECT ISNULL(ROW1,0)-ISNULL(ROW2,0) FROM YOUR_TABLE
于 2019-09-24T09:03:39.340 回答