我对别名
的使用感到困惑。例如,下面的查询工作正常
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
请解释一下差异。
最佳答案
这是因为SELECT
是在WHERE
之后执行的,而FROM
是在WHERE
之前执行的,所以它不能在第二个查询中使用,但可以在第一个查询中使用。
关于mysql - 在 mysql 中使用别名不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18198425/