使用ROW_NUMBER() OVER遇到的一点问题
来源:互联网 发布:help desk是什么软件 编辑:程序博客网 时间:2024/06/05 04:02
Q:今天上课学习ROW_NUMBER() OVER的时候
- SQL code
select *,row_number() over(order by productname) as rownumberfrom products--上面是正确的,然后我想的是从这个结果集在取10-20之间的数据,然后我书写如下:select *,row_number() over(order by productname) as rownumberfrom productswhere rownumber between 10 and 20--这样报错.然后又找资料看,找不个例子.然后我照那个例子改进select* from(select *,row_number() over(order by productname) as rownumberfrom products)as tempwhere rownumber between 10 and 20--这样就对了.
我想问,为什么非要在用子查询才能指定返回的范围呢?我第一种方法直接在取出来的结果集里取为什么不行呢?
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
- 使用ROW_NUMBER() OVER遇到的一点问题
- row_number()over函数的使用
- row_number()over函数的使用
- row_number() over函数的使用
- row_number()over函数的使用
- Rownum和row_number() over()的使用
- row_number()over函数的使用(转)
- row_number()over函数的使用.doc
- Oracle Rownum和row_number() over()的使用
- row_number()over函数的使用(转)
- 使用row_number() over的小功能
- Rownum和row_number() over()的使用
- Oracle row_number()over 函数的使用
- oracle Rownum和row_number() over()的使用
- oracle函数row_number() over ( )的简单使用
- rank/row_number() OVER ()使用
- ROW_NUMBER() OVER使用
- Row_Number() OVER的实例.
- 自绘按钮
- 页面高度宽度各浏览器兼容脚本
- nonemptycrossjoin (mdx)
- 悲伤的年代,探寻生命的意义
- android 图片水平显示,类Gallery效果
- 使用ROW_NUMBER() OVER遇到的一点问题
- 各种类图的官网
- Silverlight之out of Browser模式
- 利用KeyValuePair遍历Dictionary
- 学习HTML:iframe用法总结收藏
- 一个在vs2005+上创建一个基于CRecordView的对话框
- ehcache作为分布式缓存的研究
- 扩大VMware虚拟机中linux硬盘空间
- 屏蔽浏览器的地址栏和菜单栏,这样可以使系统看起来更正规 .