您的位置:首页 > 数据库 > Oracle

MySQL、MS SQL、Oracle三种数据库查询M到N行数据 分类: 数据库 2009-11-10 23:33 688人阅读 评论(0) 收藏

2009-11-10 23:33 1011 查看
先创建表及插入测试数据,以 MySQL为例,中如下:

--建表
CREATE TABLE `table1` (
`id` int(11) NOT NULL,
`name` varchar(20) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;

--插入测试数据
insert into table1 values
(1,'beibei'),
(2,'jack'),
(3,'tom'),
(4,'andy'),
(5,'liu'),
(6,'jacky');

--查询
--SELECT * FROM table1
id name
1 beibei
2 jack
3 tom
4 andy
5 liu
6 jacky

如果查询第3行到第5行,即查询结果为:

id name
3 tom
4 andy
5 liu

MySQL

--2为行的索引,3为查询出来的行的总数
SELECT * FROM table1 limit 2,3;

SQL Server

--此语句未经验证,如有错误请指正!
SELECT * FROM (SELECT TOP 3 * FROM (SELECT TOP 5 * FROM table1) ORDER BY id DESC) ORDER BY id ASC;

Oracle

SELECT * FROM (SELECT rownum rn,t.* FROM table1 t) WHERE rn BETWEEN 3 AND 5;

--或者使用分析函数

SELECT * FROM (SELECT t.*, ROW_NUMBER() OVER (ORDER BY id) rn FROM tb t) WHERE rn BETWEEN 3 AND 5
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐