我对alias
的使用感到困惑。例如,下面的查询工作正常
select * from
(
select ROW_NUMBER() over (partition by prodid order by quantity desc) as 'rankin',prodid,quantity from sales
) A
where rankin=1
但是当我修改它时,如下面的代码段所示,我得到错误:“无效的列名'rownumber'”。
select ROW_NUMBER() over (order by quantity) as 'rownumber' from sales
where rownumber = 1
请解释其中的差异。
答案 0 :(得分:0)
这是因为SELECT
在WHERE
之后执行而FROM
在WHERE
之前执行,所以它不能在第二个查询中使用但它可以是在第一个查询中使用。