问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在Oracle中怎样查询前10条记录?

发布网友 发布时间:2022-04-09 16:46

我来回答

2个回答

热心网友 时间:2022-04-09 18:16

根据时间条件排序,取前十条和后十条。
1、有时间字段,
根据时间条件排序,取前十条和后十条
(1)前十条:
select
*
from
(select
*
from
tab_name
a
order
by
date_col
)
where
rownum<11;
(2)后十条:
select
*
from
(select
*
from
tab_name
a
order
by
date_col
desc)
where
rownum<11;
2、没有时间字段,
直接根据物理存储顺序,取前十条和后十条
(1)前十条:
select
*
from
(select
*
from
tab_name
a
order
by
rownum)
where
rownum<11;
(2)后十条:
select
*
from
(select
*
from
tab_name
a
order
by
rownuml
desc)
where
rownum<11;

热心网友 时间:2022-04-09 19:34

下面是关于rownum的介绍
================================
rownum和row_number()
over()的使用
rownum是oracle从8开始提供的一个伪列,是把sql出来的结果进行编号,始终从1开始,常见的用途就是用来分页输出.
比如select
*from
torderdetail
a
where
rownum
<=
10
这条语句就是输出前10条纪录,在这里用途上类似于sql
sever的top,不过rownum对于指定编号区间的输出应该说更强大select
*from
(select
a.*,
rownum
rn
from
torderdetail
a)
where
rn
>=
10
and
rn
<=
20
这条语句即是输出第10到第20条纪录,这里之所以用rownum
rn,是把rownum转成实例,因为rownum本身只能用
<=的比较方式,只有转成实列,这样就可做
>=的比较了。
在实际用途中,常常会要求取最近的几条纪录,这就需要先对纪录进行排序后再取rownum
<=一般常见的select
*from
(select
a.*
from
torderdetail
a
order
by
order_date
desc)
where
rownum
<=
10
而在csdn曾经发生过讨论,关于取近的10条纪录,有人给出这样的语句select
a.*
from
torderdetail
a
where
rownum
<=
10
order
by
order_date
desc
之所以会出现这样的语句,主要是从效率上的考虑,前面条语句,是要进行全表扫描后再排序,然后再取10条纪录,后一条语句则不会全表扫描,只会取出10条纪录,很明显后条语句的效率会高许多。
那为什么会有争议呢,那就在于在执行顺序上争议,是先执行排序取10条纪录,还是取10条纪录,再排序呢?两种顺序取出来的结果是截然相反的,先排序再取10条,就是取最近的10条,而先取10条,再排序,则取出的最早的10条纪录。对于此语句,普遍的认为执行顺序是先取10条纪录再排序的。所以此语句应该是错误。但实际上并非如此,此语句的执行顺序和order
by的字段有关系,如果你order
by
的字段是pk,则是先排序,再取10条(速度比第一种语句快),而排序字段不是pk
时,是先取10条再排序,此时结果就与要求不一样了,所以第二种写法一定要在排序字段是主键的情况下才能保证结果正确。
row_number()
over()这个分析函数是从9i开始提供的,一般的用途和rownum差不多。
一般写法row_number()
over(
order
by
order_date
desc)
生成的顺序和rownum的语句一样,效率也一样(对于同样有order
by
的rownum语句来说),所以在这种情况下两种用法是一样的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我用耳机玩爱唱久久怎么唱出来的不响? 电脑ktv点歌软件有哪些电脑用什么点歌软件比较好 更换变速箱油后,汽车刹车和起步时底盘常有嘎啦嘎啦的异响是什么原因... 格兰仕空调口碑怎么样 格兰仕空调的优缺点有哪些? 格兰仕空调怎么样?质量好吗? 什么是PNC金融服务集团 挖出蛇是好事还是坏事? 微信换行怎么换到下一行 微信如何将自己的位置定位发绐别人 中秋来历,简便一点,不超60字,谢谢 牛仔裤有封痕怎么去除 六十字中秋节的来历 臭氧是杀菌保鲜作用? 臭氧水的作用与功效是? 臭氧水的作用与功效是什么? 臭氧发生器 哪家比较好? 我的白衣服和牛仔裤一起洗~搞到牛仔裤脱色脱到衣服上去了~~那个知道怎样去掉啊?? 臭氧杀菌洗衣机,能否将袜子和内裤一起洗! 什么是洗衣机臭氧洗涤? 牛仔布的臭氧加工是什么?有什么功效? 关于牛仔裤洗水之臭氧与漂水漂白 oppoa77怎么一边玩游戏一边看小窗口直播? 学习通小窗口看直播为什么只有一分钟 简历中蓝底照片穿黄色衣服好吗 特级教师里有简中兰吗? 比较位数不同的两个数时,位数()的比位数()的数大。 万以内数的大小比较,数位不同的两个数比较大小时,( )数大,( )数小:位数相同的两个数比较大小时,就比较 比较两个数的大小,如果位数不同,那么位数多的数就______;如果位数相同,______起第一位上的数大的那个 l两个位数不同的数比较大小()的数大,是不是填数位多的数大? 流程图是由一些什么符号和文字符号构成? 流程图倒三角符号表示什么 纪梵希的广告的告知是什么 电脑鼠标在桌面点击右键显示菜单一会儿又自动消失是什么原因 我的电脑一在桌面点鼠标右键就什么都没了,过一会他就会出现,我再点右键又什么都没了,这是怎么回事 求助点击主题 闪一下自动关闭, 鼠标右键点击就会关闭该程序 word鼠标右击之后再点下就会自动关闭,怎么回事啊!请高手帮帮忙 桌面点击右键菜单之后 ,会 自动关闭。 win10电脑右键点个性化和显示时就出现这种情况,在所有设置里面可以打开这是怎么回事? 淘宝上的卫衣什么显示什么布料的不会起球 鼠标右键点击任务栏出现的界面自动消失,无法选择,点击开始菜单后出现的界面也是瞬间消失,高手解答,谢 今天开电脑发现鼠标右键点击桌面后就弹出Windows资源管理器自动关闭又开启的框,求解决. 桌面右键个性化设置了一些窗口和桌面的背景颜色,之后再在桌面上点右键就变成这样了,求解决 在我的电脑里按右键窗口自动关闭 如何分辩卫衣面料,怎样的是好的,怎样的不起球,怎样的不褪色 仁和鱼子酱眼霜怎么样 有什么好看的小说,无虐的,求推荐 带有“小乖,小家伙,小东西的超级甜宠宠溺文” 鱼子酱BB霜好用吗