CONTAINSROW 函数
如果表中存在或包含一行值,则返回 TRUE,否则返回 FALSE。
语法
CONTAINSROW(<tableExpr>, <scalarExpr>[, <scalarExpr>, …])
parameters
术语 | 定义 |
---|---|
scalarExprN | 任何返回标量值的有效 DAX 表达式。 |
tableExpr | 任何返回数据表的有效 DAX 表达式。 |
返回值
True 或 False。
备注
除语法外,IN 运算符和 CONTAINSROW 函数在功能上是等效的。
<scalarExpr> IN <tableExpr> ( <scalarExpr1>, <scalarExpr2>, … ) IN <tableExpr>
- scalarExprN 的数量必须与 tableExpr 中的列数相匹配。
- NOT IN 不是 DAX 中的运算符。 要执行 IN 运算符的逻辑否定,请将 NOT 放在整个表达式前面。 例如,NOT [Color] IN { "Red", "Yellow", "Blue" }。
与 = 运算符不同,IN 运算符和 CONTAINSROW 函数执行严格的比较。 例如,空白值与 0 不匹配。
示例 1
下面是等效的 DAX 查询:
EVALUATE FILTER(ALL(DimProduct[Color]), [Color] IN { "Red", "Yellow", "Blue" })ORDER BY [Color]
和
EVALUATE FILTER(ALL(DimProduct[Color]), ([Color]) IN { "Red", "Yellow", "Blue" })ORDER BY [Color]
和
EVALUATE FILTER(ALL(DimProduct[Color]), CONTAINSROW({ "Red", "Yellow", "Blue" }, [Color]))ORDER BY [Color]
返回以下单列表:
DimProduct[Color] |
---|
蓝色 |
Red |
Yellow |
示例 2
下面是等效的 DAX 查询:
EVALUATE FILTER(SUMMARIZE(DimProduct, [Color], [Size]), ([Color], [Size]) IN { ("Black", "L") })
和
EVALUATE FILTER(SUMMARIZE(DimProduct, [Color], [Size]), CONTAINSROW({ ("Black", "L") }, [Color], [Size]))
返回:
DimProduct[Color] | DimProduct[Size] |
---|---|
黑色 | L |
示例 3
下面是等效的 DAX 查询:
EVALUATE FILTER(ALL(DimProduct[Color]), NOT [Color] IN { "Red", "Yellow", "Blue" })ORDER BY [Color]
和
EVALUATE FILTER(ALL(DimProduct[Color]), NOT CONTAINSROW({ "Red", "Yellow", "Blue" }, [Color]))ORDER BY [Color]
返回以下单列表:
DimProduct[Color] |
---|
黑色 |
灰色 |
多 |
NA |
Silver |
银色\黑色 |
White |