求sql中 从第几行取几行的语句!

求sql中 从第几行取几行的语句!,第1张

--从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,tage 

from

(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条的纪录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10127620.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存