sql从查询结果中选择中间某部分记录
发布网友
发布时间:2022-04-08 18:46
我来回答
共5个回答
热心网友
时间:2022-04-08 20:16
我说1个笨方法哈
select top 300 * into #table from table order by 排序条件
delete top 199 * from #table order by 排序条件
select * from #table order by 排序条件
说明:
这是用虚拟表写的,方法比较笨,简单的铁定会有,你多想想
我是采取取出来目的记录,然后过滤掉不要的记录,剩下的就是你想要的了
因为你是要200~300条,所以必须要有按什么来排序的条件,排序不同,结果也不同的
你试试,OK,请采纳
热心网友
时间:2022-04-08 21:34
select t.* from
(select row_number() over (order by 任意字段) rn,表名.* from 表名) t
where rn between 200 and 300
什么数据库
sqlserver或oracle的话用上边的吧
热心网友
时间:2022-04-08 23:08
select * from
(select ROWNUM r, userid,username from table_a order by userid) t
where t.r>=200 and r<= 300;
改一下表名,字段名就行
利用rownum虚列做子查询
热心网友
时间:2022-04-09 01:00
select * from [table] limit m,n
select * from [table] limit 200,100
M是从第几行开始,N是+几行
热心网友
时间:2022-04-09 03:08
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