MySQL、MS SQL、Oracle三种数据库查询M到N行数据

先创建表及插入测试数据,以 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

  

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值