Row_Number Over Where RowNumber 之间 [英] Row_Number Over Where RowNumber between

查看:26
本文介绍了Row_Number Over Where RowNumber 之间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试使用 row_number 从我的表中选择某些行.但是sql会提示错误msgInvalid column name 'ROWNUMBERS'".任何人都可以纠正我吗?

I'm try to select a certain rows from my table using the row_number over. However, the sql will prompt the error msg "Invalid column name 'ROWNUMBERS' ". Anyone can correct me?

SELECT ROW_NUMBER() OVER (ORDER BY  Price ASC) AS ROWNUMBERS, * 
FROM Product
WHERE  ROWNUMBERS BETWEEN  @fromCount AND @toCount

推荐答案

尝试引用 WHERE 子句中的别名列不起作用,因为发生了逻辑查询处理.WHERESELECT 子句之前计算.因此,当计算 WHERE 时,列 ROWNUMBERS 不存在.

Attempting to reference the aliased column in the WHERE clause does not work because of the logical query processing taking place. The WHERE is evaluated before the SELECT clause. Therefore, the column ROWNUMBERS does not exist when WHERE is evaluated.

在此示例中引用列的正确方法是:

The correct way to reference the column in this example would be:

SELECT a.*
FROM
    (SELECT ROW_NUMBER() OVER (ORDER BY  Price ASC) AS ROWNUMBERS, * 
    FROM Product) a
WHERE a.ROWNUMBERS BETWEEN @fromCount AND @toCount

供您参考,操作顺序为:

For your reference, the order for operations is:

  1. FROM
  2. WHERE
  3. GROUP BY
  4. 拥有
  5. SELECT
  6. ORDER BY

这篇关于Row_Number Over Where RowNumber 之间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆