sql语句错误大集合

这条sql是错误的,因为sql的执行顺序是from->where->select,where的时候num这个别名根本就还没声明,因为在select的时候才会声明num这个别名,所以肯定会报错。

正确写法是加一个子查询:select * from (select * ,row_number() over(order by id) as num from UserInfo) as t  where t.num>=20 and t.num<=30,

先把第一查询的结果声明为t这个表,再从t这个表里面查询,这样就知道num是什么了

posted @ 2017-06-21 16:48  o李一波o  阅读(244)  评论(0编辑  收藏  举报