sql查询减法

MyH*_*rts 1 sql sql-server-2005

我有一个查询,其中我的总销售额和我取消的销售额减去,但是如果没有取消销售,则该值为空.然后当

所以基本上如果我的cancelsales为null,它返回减法列的空值而不是totalsales

totalsales-canceledsales(null) = null
1000-null=null
Run Code Online (Sandbox Code Playgroud)

我希望它像这样

1000-null=1000
Run Code Online (Sandbox Code Playgroud)

Jus*_*ner 6

正确的ANSI SQL方式是(考虑到totalsales并且canceledsales都可以为null):

coalesce(totalsales, 0) - coalesce(canceledsales, 0)
Run Code Online (Sandbox Code Playgroud)

您可能还会在SQL Server上看到ISNULL的使用:

isnull(totalsales, 0) - isnull(canceledsales, 0)
Run Code Online (Sandbox Code Playgroud)

  • 不,这将是总和(aprice) - 总和(isnull(cancelrevenue,0)) (2认同)