sql从查询结果中选择中间某部分记录
展开全部
我说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,请采纳
展开全部
select t.* from
(select row_number() over (order by 任意字段) rn,表名.* from 表名) t
where rn between 200 and 300
什么数据库
sqlserver或oracle的话用上边的吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from
(select ROWNUM r, userid,username from table_a order by userid) t
where t.r>=200 and r<= 300;
改一下表名,字段名就行
利用rownum虚列做子查询
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from [table] limit m,n
select * from [table] limit 200,100
M是从第几行开始,N是+几行
select * from [table] limit 200,100
M是从第几行开始,N是+几行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |