zoukankan      html  css  js  c++  java
  • 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

     

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

  • 相关阅读:
    codevs 1432 总数统计
    codevs3500 快速幂入门题解
    #163. 【清华集训2015】新式计算机
    2989:糖果
    191:钉子和小球
    java 删除所有HTML工具类
    DateTools时间插件
    新的开始
    springBoot---端口,路径数据配置
    springBoot---多个配置文件读取
  • 原文地址:https://www.cnblogs.com/Dykimy/p/4702756.html
Copyright © 2011-2022 走看看