TREATAS
将表表达式的结果作为筛选器应用于不相关的表中的列。
语法
TREATAS(table_expression, <column>[, <column>[, <column>[,…]]]} )
parameters
术语 | 定义 |
---|---|
table_expression |
生成表的表达式。 |
column |
一个或多个现有列。 它不能是表达式。 |
返回值
一个表,其中包含列(s)中的所有行,这些行也位于table_expression中。
备注
指定的列数必须与表表达式中的列数匹配,并且顺序相同。
如果表中表达式中返回的值在列中不存在,则忽略该值。 例如,TREATAS({“Red”、“Green”、“Yellow”}、DimProduct[Color])对列 DimProduct[Color] 设置一个筛选器,其中包含三个值“Red”、“Green”和“Yellow”。 如果 DimProduct[Color] 中不存在“Yellow”,则有效筛选器值为“Red”和“Green”。
最适合在表之间不存在关系时使用。 如果涉及的表之间存在多个关系,请考虑改用 USERELATIONSHIP。
在计算列或行级别安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。
示例
在以下示例中,模型包含两个不相关的产品表。 如果用户将筛选器应用于 DimProduct1[ProductCategory] 选择“自行车”、“座位”、“轮胎”,则同一筛选器、“自行车”、“座位”、“轮胎”将应用于 DimProduct2[ProductCategory]。
CALCULATE(
SUM(Sales[Amount]),
TREATAS(
VALUES(DimProduct1[ProductCategory]),
DimProduct2[ProductCategory]
)
)