Mssql 查询某记录前后N条

Sqlserver 查询指定记录前后N条,包括当前数据

 

条件 【ID】

查询 【N】条

 

select * from [Table] where ID in (select top (【N】+1) ID from [Table] where id <=【ID】 order by id desc
union
select top 【N】 ID from [Table] where id>【ID】 order by id )
order by ID

 

 

例如:有数据表 A

id    name    datet
1    123123        2015-08-04 11:19:32.770
3    qwerqwer      2015-08-04 11:19:34.710
4    qwerqfsd      2015-08-04 11:19:35.507
7    jhndf         2015-08-04 11:19:38.507
8    sdfsdfc       2015-08-04 11:19:39.720
10    asdfsvc       2015-08-04 11:19:42.897
12    gdfvasdf      2015-08-04 11:19:44.927
13    vwrt4g        2015-08-04 11:19:46.517
15    asdvsdfg      2015-08-04 11:19:52.150

 

查询ID 为8的前后2条数据

 

SQL 语句为:

select * from A where ID in (select top 3 ID from A where id <=8 order by id desc
union
select top 2 ID from A where id>8 order by id )
order by ID

 

结果:

id    name    datet
4    qwerqfsd      2015-08-04 11:19:35.507
7    jhndf         2015-08-04 11:19:38.507
8    sdfsdfc       2015-08-04 11:19:39.720
10    asdfsvc       2015-08-04 11:19:42.897
12    gdfvasdf      2015-08-04 11:19:44.927

 

结束~~~~,大牛勿喷,主要记录一下,自己用。

posted @   Dykimy  阅读(806)  评论(2编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示