当前位置: 网学 > 编程文档 > ORACLE > 正文

Oracle与DB2、MySQL取前10条记录的对比

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/19
下载{$ArticleTitle}原创论文样式
nbsp;

Db2示例

 

create table mynumber(id int,name varchar(10))insert into mynumber values(1,''no1'')insert into mynumber values(2,''no2'')insert into mynumber values(3,''no3'')insert into mynumber values(4,''no4'')insert into mynumber values(5,''no5'')insert into mynumber values(5,''no6'')insert into mynumber values(6,''no7'')insert into mynumber values(7,''no8'')insert into mynumber values(8,''no9'')insert into mynumber values(9,''no10'')insert into mynumber values(9,''no11'')insert into mynumber values(9,''no12'')insert into mynumber values(10,''no13'')insert into mynumber values(10,''no14'')insert into mynumber values(10,''no15'')insert into mynumber values(11,''no16'')insert into mynumber values(12,''no17'')insert into mynumber values(13,''no18'')

 

 

select * from (select id,name,RANK() over ( order by id ) case1,DENSE_RANK() over ( order by id ) case2,row_number() over ( order by id ) case3 from mynumber) as tt where case1<=10

 

(1) 取前10条不同id记录,假如最后1条记录的ID依然有相同的,那么全部取出来。

 

select * from mynumber where id in(select distinct id from mynumber fetch first 10 rows only)select * from (select id,name,RANK() over ( order by id ) case1,DENSE_RANK() over ( order by id ) case2,row_number() over ( order by id ) case3 from mynumber) as tt where case1<=10select * from (select id,name,RANK() over ( order by id ) case1,DENSE_RANK() over ( order by id ) case2,row_number() over ( order by id ) case3 from mynumber) as tt where case1 between 5 and 10

 

 

 

 

(2)取前10条记录,假如第10条记录的ID 还有相同的,那么全部取出来。

 

select * from mynumber where id in(select id from mynumber fetch first 10 rows only)select * from (select id,name,RANK() over ( order by id ) case1,DENSE_RANK() over ( order by id ) case2,row_number() over ( order by id ) case3 from mynumber) as tt where case2<=10select * from (select id,name,RANK() over ( order by id ) case1,DENSE_RANK() over ( order by id ) case2,row_number() over ( order by id ) case3 from mynumber) as tt where case2 between 5 and 10

 

 

 

(3)取前10条记录

 

select id from mynumber fetch first 10 rows onlyselect * from (select id,name,RANK() over ( order by id ) case1,DENSE_RANK() over ( order by id ) case2,row_number() over ( order by id ) case3 from mynumber) as tt where case3<=10select * from (select id,name,RANK() over ( order by id ) case1,DENSE_RANK() over ( order by id ) case2,row_number() over ( order by id ) case3 from mynumber) as tt where case3 between 5 and 10

 

Mysql示例:

 

select id from mytable order by update_date desc limit 0,10

来自:http://tech.ccidne

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号