--从Table 表中取出第 m 条到第 n 条的记录:(Not In 版本)
SELECT TOP n-m+1
FROM Table
WHERE (id NOT IN (SELECT TOP m-1 id FROM Table ))
从TABLE表中取出第m到n条记录 (Exists版本)
SELECT TOP n-m+1 FROM TABLE AS a WHERE Not Exists
(Select From (Select Top m-1 From TABLE order by id) b Where bid=aid )
Order by id
--m为上标,n为下标,例如取出第8到12条记录,m=8,n=12,Table为表名
Select Top n-m+1 From Table
Where Id>(Select Max(Id) From
(Select Top m-1 Id From Table Order By Id Asc) Temp)
Order By Id Asc
MYSQL
查询语句+LIMIT+10 取查询记录的前十条。
如:SELECT FROM Test LIMIT 10
查询语句+LIMIT+2,10 取查询语句,从第二条记录,取十条记录。
如:SELECT FROM Test LIMIT 2,10
select top 10 from 表 where id in (select top 5 id from titles) order by id desc\x0d\\x0d\这句的意思是找前十条数据的id为titles表的前五条id的数据,按降序排列
这个sql有点麻烦了,
简单点的就直接
select id,name,type,score from student where type='小学生' limit 2 union select id,name,type,score from student where type='中学生' limit 2 ;
或者你用存储过程来做循环:查询出所有type然后在循环里动态给 查询语句中的type复制,有几个type就concat几个union上去,
其他直接写sql查询的话有点难,写不出来
按楼主的设想应该是给定一个ID 取这个ID的前多少条,后多少条
select top N from 表 where id>当前ID order by id ASC
union all
select top N from 表 where id<当前ID order by id desc
可以通过row_number函数来实现。
如test表中数据如下:
现在要查询按年龄由大到小的第5-10位的人员名单,可用如下语句:
select tid,tname,tagefrom
(select row_number() over(order by age desc) as rn,id,name,age from test) t
where rn between 5 and 10
查询结果:
以上就是关于求sql中 从第几行取几行的语句!全部的内容,包括:求sql中 从第几行取几行的语句!、常用几种数据库,取前10条记录的sql语句写法、SQL SERVER如何提取前5条到前10条的纪录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)