sql从查询结果中选择中间某部分记录

假如我查到了1000条记录,我想取其中的第200~300条记录

sqlserver:
with t as ( select top 300 row_number() over(order by 字段) r, * from 表)
select * from t where r>=200
oracle:
with t as ( select rownum r, * from 表 where rownum<=300 )
select * from t where r>=200
mysql:
select * from 表 limit 199,100
db2:
with t as ( select row_number() over(order by 字段) r, * from 表 fetch frist 300 rows only)
select * from t where r>=200
其中 sqlserver\oracle\db2也可直接
with t as (select row_number() over(order by 字段) r, * from 表)
select * from t where r between 200 and 300

猜你喜欢

转载自blog.csdn.net/zhw0596/article/details/81604221