Q:今天上课学习ROW_NUMBER() OVER的时候
|
A1:因为你直接where的时候,还不能用别名。。。 order by 就可以用。。。
A2:SQL code
select *,row_number() over(order by productname) as rownumber
from products
where (row_number() over(order by productname)) between 10 and 20 --修改过
--这样报错.然后又找资料看,找不个例子.然后我照那个例子改进
--因为他还不认识rownumber这个字段
懂了,这个select语句在这里是先执行from再执行where最后select..所以当执行到where的时候from出来的结果集里并没有rownumber这个东西.
是这样吧?
A3:
因为在products表中并不存在rownumber这个字段,系统在执行条件语句“where rownumber between 10 and 20”时,因为没有发现products表中有rownumber这个字段,所以就会报错了。
|
来源:http://topic.csdn.net/u/20090411/21/fcab1e5d-b4e6-4024-8190-e9f00e292ec7.html