SQL Server sql 查询记录数结果集某个区间内记录

2022-11-12 09:47:41
内容摘要
这篇文章主要为大家详细介绍了SQL Server sql 查询记录数结果集某个区间内记录,具有一定的参考价值,可以用来参考一下。 对此感兴趣的朋友,看看idc笔记做的技术笔记!以查询前20
文章正文

这篇文章主要为大家详细介绍了SQL Server sql 查询记录数结果集某个区间内记录,具有一定的参考价值,可以用来参考一下。

对此感兴趣的朋友,看看idc笔记做的技术笔记!

以查询前20到30条为例,主键名为id方法一: 先正查,再反查select top 10 * from (select top 30 * from tablename order by id asc) A order by id desc方法二: 使用left joinselect top 10 A.* from tablename Aleft outer join (select top 20 * from tablename order by id asc) Bon A.id = B.idwhere B.id is nullorder by A.id asc方法三: 使用not existsselect top 10 * from tablename Awhere id not exists(select top 20 * from tablename B on A.id = B.id)方法四: 使用not inselect top 10 * from tablenamewhere id not in(select top 20 id from tablename order by id asc)order by id asc方法五: 使用rank()select id from(select rank() over(order by id asc) rk, id from tablename) Twhere rk between 20 and 30中第五种方法看上去好像没有问题,查了下文档,当over()用于rank/row_number时,整型列不能描述一个列,所以会产生非预期的效果. 待考虑下,有什么办法可以修改为想要的结果.

注:关于SQL Server sql 查询记录数结果集某个区间内记录的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!