理解SQL中“IsNull”函数的工作原理

时间:2014-10-06 12:33:16

标签: sql sql-server isnull

访问代码

iif(Format(SUM(Field))='',0,SUM(Field))

SQL代码

IsNull(SUM(Field),0) As Amt

访问代码声明中,清楚地显示查询必须运行 SUM函数 2次才能获得 SUM 0 如果记录为空白。

但我想知道内部SQL在SQL语句中运行SUM函数的次数? 1还是2?请提供一些解释。

1 个答案:

答案 0 :(得分:1)

我的复制粘贴评论:

一次,opposed to COALESCE

  

与子查询一起使用

     

ISNULL功能在COALESCE方面具有重要优势   在内部,它不会多次评估输入表达式。在   按照标准SQL,COALESCE(v1,v2)就在内部   转换为CASE WHEN v1 IS NOT NOT NULL,然后v1 ELSE v2 END。作为一个   结果,SQL Server可能不止一次地评估表达式v1,   这会产生各种令人惊讶的结果。