|
|
1
18
您必须移动WHERE操作符 在上面 创建“行号”列的项目列表。使用派生表或CTE:
|
|
|
2
5
窗口函数(最熟悉的是它的行号)在查询中很晚才填充,在WHERE子句之后。因此,您也必须嵌套它,以便在其上进行过滤:
您也可以将它们放在CTE或视图中以获得相同的效果。 |
|
|
3
1
查询的问题是由于逻辑处理顺序中的错误造成的。这是MSDN dev网络中指定的逻辑处理顺序。 SELECT语句的逻辑处理顺序 以下步骤显示SELECT语句的逻辑处理顺序或绑定顺序。此顺序确定在一个步骤中定义的对象何时可用于后续步骤中的子句。例如,如果查询处理器可以绑定(访问)FROM子句中定义的表或视图,则所有后续步骤都可以使用这些对象及其列。相反,由于SELECT子句是步骤8,因此前面的子句不能引用该子句中定义的任何列别名或派生列。但是,它们可以由后续的子句(如ORDER by子句)引用。请注意,语句的实际物理执行由查询处理器决定,并且顺序可能与此列表不同。 从…起 参加 分组 有 挑选 订购人 因此,在from部分的子查询中将ranking函数作为别名引入,然后您将能够在where部分的别名上设置条件。
|