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”开始的行
对已排序的产品表的查询结果从 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"
复制代码
产品表按品牌降序,查询结果将从 Yellow ,Tailspin Toys brand 的组合开始
若要筛选行并更改 DAX 查询返回的列, 必须在 EVALUATE 关键字后使用一些特定的表函数处理表表达式。
可以在单个查询中指定多个 EVALUATE/ORDER BY/START AT 子句 |