oracle分页查询语句第几页(oracle分页查询语句的方法)

对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀。(1)rownum对于等于某值的查询条件如果希

对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀。

(1) rownum 对于等于某值的查询条件

如果希望找到学生表中第一条学生的信息,可以使用rownum=1作为条件。但是想找到学生表中第二条学生的信息,使用rownum=2结果查不到数据。因为rownum都是从1开始,但是1以上的自然数在rownum做等于判断是时认为都是false条件,所以无法查到rownum = n(n>1的自然数)。

SQL> select rownum,id,name from student where rownum=1;(可以用在限制返回记录条数的地方,保证不出错,如:隐式游标)

SQL> select rownum,id,name from student where rownum =2;

ROWNUM ID NAME

———- —— —————————————————

(2)rownum对于大于某值的查询条件

如果想找到从第二行记录以后的记录,当使用rownum>2是查不出记录的,原因是由于rownum是一个总是从1开始的伪列,Oracle 认为rownum> n(n>1的自然数)这种条件依旧不成立,所以查不到记录。

查找到第二行以后的记录可使用以下的子查询方法来解决。注意子查询中的rownum必须要有别名,否则还是不会查出记录来,这是因为rownum不是某个表的列,如果不起别名的话,无法知道rownum是子查询的列还是主查询的列。

SQL>select * from(select rownum no ,id,name from student) where no>2;

NO ID NAME

———- —— —————————————————

3 200003 李三

4 200004 赵四

(3)rownum对于小于某值的查询条件

rownum对于rownum<n((n>1的自然数)的条件认为是成立的,所以可以找到记录。

SQL> select rownum,id,name from student where rownum <3;

ROWNUM ID NAME

———- —— —————————————————

1 200001 张一

2 200002 王二

查询rownum在某区间的数据,必须使用子查询。例如要查询rownum在第二行到第三行之间的数据,包括第二行和第三行数据,那么我们只能写以下语句,先让它返回小于等于三的记录行,然后在主查询中判断新的rownum的别名列大于等于二的记录行。但是这样的操作会在大数据集中影响速度。

SQL> select * from (select rownum no,id,name from student where rownum<=3 ) where no >=2;

NO ID NAME

———- —— —————————————————

2 200002 王二

3 200003 李三

(4)rownum和排序

Oracle中的rownum的是在取数据的时候产生的序号,所以想对指定排序的数据去指定的rowmun行数据就必须注意了。

SQL> select rownum ,id,name from student order by name;

ROWNUM ID NAME

———- —— —————————————————

3 200003 李三

2 200002 王二

1 200001 张一

4 200004 赵四

可以看出,rownum并不是按照name列来生成的序号。系统是按照记录插入时的顺序给记录排的号,rowid也是顺序分配的。为了解决这个问题,必须使用子查询;

SQL> select rownum ,id,name from (select * from student order by name);

ROWNUM ID NAME

———- —— —————————————————

1 200003 李三

2 200002 王二

3 200001 张一

4 200004 赵四

这样就成了按name排序,并且用rownum标出正确序号(有小到大)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/32157.html

(0)
新劵
上一篇 2021-10-01
下一篇 2021-10-01

相关推荐

  • 突然所有pdf文件都打不开了怎么办(pdf打不开是什么原因)

    为什么我打不开PDF文件?什么原因导致的呢?一般出现这种情况,我们可以利用已有的工具进行排除下原因,并最终解决问题。今日小编为大家整理了一份“关于PDF打不开的原因以及解决方法”一起来看下吧!PDF文件打不开的原因:1、加密文件无法打

    2021-12-11
    0
  • 中国人在几内亚安全吗(几内亚安全吗有恐怖组织吗)

    相信大家在今日早上就看到了几内亚政变的消息,这也是让大家迅速比较关注几内亚的最新消息,并且非常担心中国人在几内亚的安全情况,目前中国驻几内亚使馆连发两条紧急提醒,那么中国人在几内亚安全吗,几内亚安全吗有恐怖组织吗,接下来大家就随久久派小编一起了解看看~中国人在

    2021-09-06
    0
  • win10共享win7打印机的方法(win7win10共享打印机设置)

    如果在局域网中存在有Win10和Win7系统,其中Win10电脑又连接着打印机,这种情况下怎么让Win7系统也享有使用这个打印机的权限呢?系统之家小编今天就带大家了解Win10和Win7系统局域网共享打印机的设置方法,按步骤操作,一步一步来,希望对你

    2021-10-01 科技
    0
  • 日期计算器天数函数(一天24小时的时辰表)

    在应用Excel做各种信息统计时你是否遇到过输入的明明是年月日,最后却变成了一串数字?或者,如何快速算出9月10日到12月6日这中间有多少天?类似这样的问题,通过今天我们的介绍之后,你就会轻松掌握Excel的日期和时间的运算了。下面开始我们今天的学习

    2021-09-02 科技
    0
  • win7如何删除开机启动项的操作方法(win7开机启动项设置)

    有很多用户都还在使用win7系统的,有一些用户在使用win7纯净版的时候,发现电脑开机比以前慢很多,也清理了垃圾和系统缓存还是感觉慢。其实,可能是电脑开机启动项变多了导致开机速度变慢的,下面小编就来分享具体的删除方法。方法如下:1、我

    2021-12-11 科技
    0
  • 戴尔笔记本全新安装win11如何设置(戴尔笔记本重装系统)

    据说Win11很挑——某软想摆脱一些历史的桎梏,所支持的硬件等,如果陈旧的话,基本上是不支持的。技术细节很多,不过,幸好有伟大的周老板的360,直接打开360安全卫士->软件管家,搜索“win11升级助手”,先查查电脑是否能装这个Win1

    2021-12-11
    0

发表回复

登录后才能评论