访问代码
iif(Format(SUM(Field))='',0,SUM(Field))
SQL代码
IsNull(SUM(Field),0) As Amt
在访问代码声明中,清楚地显示查询必须运行 SUM函数 2次才能获得 SUM 和 0 如果记录为空白。
但我想知道内部SQL在SQL语句中运行SUM函数的次数? 1还是2?请提供一些解释。
答案 0 :(得分:1)
我的复制粘贴评论:
与子查询一起使用
ISNULL功能在COALESCE方面具有重要优势 在内部,它不会多次评估输入表达式。在 按照标准SQL,COALESCE(v1,v2)就在内部 转换为CASE WHEN v1 IS NOT NOT NULL,然后v1 ELSE v2 END。作为一个 结果,SQL Server可能不止一次地评估表达式v1, 这会产生各种令人惊讶的结果。