START AT 关键词也是可选条件,并且只能与 ORDER BY 子句结合使用。你可以在 ORDER BY 语句中为每个列指定起始值。START AT 参数与 ORDER BY 子句中的列具有一对一的对应关系。 START AT 子句中参数的数量可以与 ORDER BY 子句中参数的数量一样多,但不能超过 ORDER BY 子句中参数的数量。 START AT 中的第一个参数定义了 ORDER BY 列的列 1 中的起始值。 START AT 中的第二个参数定义满足列 1 的第一个值的行中 ORDER BY 列的列 2 中的起始值。
在无状态应用程序中,START AT 条件对于分页非常有用,这些应用程序只从查询中获取有限数量的行,然后在用户请求下一页数据时发送另一个查询。例如,查看以下查询:
EVALUATE Product ORDER BY Product[Color], Product[Brand] ASC, Product[Class] DESC START AT "Yellow", "Tailspin Toys"
查询返回如图所示的表格,其中只包含从”Yellow”、 “Tailspin Toys”开始的行
请注意,从哪里起始这个概念取决于 ORDER BY 子句中指定的顺序方向。如果 Product[Brand]被指定为 DESC,如下例所示,结果中将不包括 Wide World Importers,而其他品牌,如 Southridge Video 和 Northwind Trader,会在 Tailspin Toys 后显示。
EVALUATE Product ORDER BY Product[Color], Product[Brand] DESC, Product[Class] DESC START AT "Yellow", "Tailspin Toys"
若要筛选行并更改 DAX 查询返回的列, 必须在 EVALUATE 关键字后使用一些特定的表函数处理表表达式。
可以在单个查询中指定多个 EVALUATE/ORDER BY/START AT 子句
说点什么