Table of Contents

代码操作 DI011(改进)用 ISEMPTY 替换 COUNTROWS

描述

在检查表是否为空时,使用 ISEMPTY 函数通常比统计表的行数更高效。

示例

将以下代码:

IF(COUNTROWS(Products) = 0, "No products", "Products exist")

改为:

IF(ISEMPTY(Products), "No products", "Products exist")

Tabular Editor 为什么会建议这样做?

在检查表是否为空时,DAX 中一个常见的反模式是使用 COUNTROWS 函数统计表的行数,然后将结果与零进行比较。 但这种写法效率较低,因为它要求引擎统计表中的所有行——即使我们只关心这张表是否为空。

使用 ISEMPTY 函数时,引擎一旦找到第一行就可以停止扫描,因此效率高得多。 ISEMPTY 函数在表为空时返回 TRUE,否则返回 FALSE。这让它成为检查表是否为空时更高效、也更易读的写法。