Table of Contents

代码操作 DI007(改进):简化 SWITCH 语句

说明

SWITCH 语句在 <Expression> 参数中指定 TRUE(),且所有 <Value> 参数都是对同一变量/度量值的简单比较时,该语句可以简化。

示例

将以下代码:

SWITCH(
	TRUE(),
	[Selected Currency] = "EUR", [Total Sales EUR],
	[Selected Currency] = "USD", [Total Sales USD],
	[Selected Currency] = "DKK", [Total Sales DKK],
	[Total Sales]
)

修改为:

SWITCH(
	[Selected Currency],
	"EUR", [Total Sales EUR],
	"USD", [Total Sales USD],
	"DKK", [Total Sales DKK],
	[Total Sales]
)

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

在 DAX 中,如果需要编写包含 2 个以上条件的条件表达式,常见做法是使用 SWITCH 语句,并将 TRUE() 作为第一个参数。 使用这种写法后,就可以为 SWITCH 的其余参数提供成对的“条件-表达式”。 第一个计算结果为 TRUE 的条件将决定 SWITCH 语句的返回结果。

但是,当所有条件都只是针对同一个值做简单的相等比较(如上例中的 [Selected Currency])时,就应将 SWITCH 语句简化为其更符合本意的用法:第一个参数为要计算的表达式,其余参数为成对的“值-结果”。 第一个与表达式匹配的值将决定 SWITCH 语句的返回结果。