用一条SQL语句取出第 m 条到第 n 条记录的方法

 

复制代码
  --从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 b.id=a.id ) 
  
Order by id
 
 
  
--m为上标,n为下标,例如取出第8到12条记录,m=8,n=12,Table为表名,Temp为临时表
 
  
Select Top n-m+1 * From Table 
  
Where Id>(Select Max(Id) From 
  (
Select Top m-1 Id From Table Order By Id AscTemp
  
Order By Id Asc

  
--找出升序的第m到第n条记录,更为笨拙的办法是

  
Select * From 
  (
Select Top n-m+1 * From (Select Top n * From 表名 Order By id Desc) t1 Order By id) t2 
  
Order By id 
复制代码
posted @   梦想天空(山边小溪)  阅读(7143)  评论(2编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示