永发信息网

oracle和sql server取第一条记录的区别以及rownum详解

答案:2  悬赏:0  手机版
解决时间 2021-01-31 02:23
oracle和sql server取第一条记录的区别以及rownum详解
最佳答案
oracle
select * from T where rownum = 1;
sql server
select top 1 * from T;
全部回答
我们知道学生可能有重名的情况,那么当重名的时候假设只需要取得重名结果集中的第一条记录。 sql server: select top(1) num,name from m_student where name = 'xy' oracle: select num,name from m_student where name = 'xy' and rownum <= 1 对于rownum在oracle的使用的时候,有几点需要注意: (1) rownum 对于等于某值的查询条件 如果希望找到学生表中第一条学生的信息,可以使用rownum=1作为条件。但是想找到学生表中第二条学生的信息,使用rownum=2结果查不到数据。因为rownum都是从1开始,但是1以上的自然数在rownum做等于判断是时认为都是false条件,所以无法查到rownum = n(n>1的自然数)。 (2) rownum对于大于某值的查询条件 如果想找到从第二行记录以后的记录,当使用rownum>2是查不出记录的,原因是由于rownum是一个总是从1开始的伪列,oracle 认为rownum> n(n>1的自然数)这种条件依旧不成立,所以查不到记录。 (3) rownum对于小于某值的查询条件 rownum对于rownum<n(n>1的自然数)的条件认为是成立的,所以可以找到记录。比如 rownum < 3 (4) rownum和排序 oracle中的rownum的是在取数据的时候产生的序号,所以想对指定排序的数据去指定的rowmun行数据就必须注意了。 select rownum ,id,name from student order by name; rownum id name 3 200003 李三 2 200002 王二 1 200001 张一 4 200004 赵四 可以看出rownum并不是按照name列来生成的序号。系统是按照记录插入时的顺序给记录排的号,rowid也是顺序分配的。必须使用子查询。 select rownum ,id,name from (select * from student order by name); rownum id name 3 200003 李三 2 200002 王二 1 200001 张一 4 200004 赵四 这样就成了按name排序,并且用rownum标出正确序号(由小到大) 看一个例子 把最先进入公司的5个人找出来 方法一 select * from emp where rownum <= 5 order by hiredate; 方法二 select * from(select * from emp order by hiredate) where rownum <= 5; 把最先进入公司的6-10个人找出来 方法一 select * from (select * from emp order by hiredate) where rownum <= 10 minus select * from (select * from emp order by hiredate) where rownum <= 5; 方法二(分页常用) select * from (select e.*, rownum rn from (select * from emp) e where rownum <= 10) t where t.rn >= 6; select * from (select e.*, rownum rn from (select ename, sal from emp) e where rownum <= 10) where rn >= 6;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
施罗德和博龙啤酒哪个好
qq发红包怎么样可以跳过输入支付密码
温岭泽国哪条街卖衣服多
一个现代重生文 女主之前遭到背叛 重生回到以
魅力人生时尚工作室怎么去啊,我要去那办事
神化彩妆地址有知道的么?有点事想过去
纤指魅专业美甲怎么去啊,我要去那办事
水中的氧气和阳光的照射.水中的水草有关系吗?
有歌词请不要离开我 陈柔希潮女纪这起花落的
路由器有网,但是电脑没网
1米73的男孩子【南方的】 。找个1米67的青岛
【年少不轻狂】年少不轻狂夏什么意思?
我是建筑工地的小包工头,去年年底公司付劳务
待到秋来九月八其他几句是什么
在橙光游戏制作里,像那种让玩者自己搭配服装
推荐资讯
我只是问她吃早餐了没,她说没有我说记得吃早
从北京带结婚照回家,有三个放大,60寸(1.5*
吃辣根脸上长不长痘
谁有吞噬星空有声小说打包下载 发出来 谢谢了
神之斧还是90级传说斧子好
荣通汽修地址在什么地方,想过去办事
喜嫁一生婚纱儿童艺术摄影地址有知道的么?有
jv33写真机墨襄空了,如何抽墨襄
c盘//programData/Battlenet/Agent这个目录里
【路基护坡】给排水:公路坡面汇水面积和汇水
国内精益生产管理咨询公司做的好的哪家?
我是微信群主,怎样限制群里人50人
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?