Chinaunix首页 | 论坛 | 博客
  • 博客访问: 81309
  • 博文数量: 65
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 500
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-30 11:16
个人简介

cuug

文章分类
文章存档

2014年(65)

我的朋友

分类: Oracle

2014-06-05 11:49:52

淘宝,选课系统中分页显示数据用的就是rownum,这是数据库默认字段,每个表中都会有,但是使用rownum需要注意以下几点:
(1)rownum不可以与*一起用

(2)rownum是在查询得到结果后加上去的,默认从一开始。这貌似是显浅的一句话,但是背后的意义非常重要,随时影响我们最后的查询结果。
如果我们执行如下的select语句 select rownum from student where rownum>2,原本我们是想着获取第二条记录以后的记录的,但是事实上我们一条记录都不会得到,原因很简单,就是select的结果是一条一条地加上去的,当第一条记录添加时,其rownum为1,不满足条件,不能添加,如此类推,我们查询的结果一条都没有。


那么我们应该如何解决这个问题呢?毕竟这是个很普遍的查询。这里我们将用到子查询。


select * from (select rownum from student)where rownum>2
阅读(356) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~