zoukankan      html  css  js  c++  java
  • 查询数据库中的第M条道第N条记录

    首先我们从最基础的入手:

    use wtqtest
          
    go

          
    create table ct(
            ss 
    varchar(20)
          )
          
    go
          
          
    --我想这两句我就不用解释了吧!就是建立一张没有自动增长字段的表
          
          
    --接下来我们插入20条记录
          
          
    insert into ct values('1asdf')
          
    insert into ct values('2asdf')
          
    insert into ct values('3asdf')
          
    insert into ct values('4asdf')
          
    insert into ct values('5asdf')
          
    insert into ct values('6asdf')
          
    insert into ct values('7asdf')
          
    insert into ct values('8asdf')
          
    insert into ct values('9asdf')
          
    insert into ct values('10asdf')
          
    insert into ct values('11asdf')
          
    insert into ct values('12asdf')
          
    insert into ct values('13asdf')
          
    insert into ct values('14asdf')
          
    insert into ct values('15asdf')
          
    insert into ct values('16asdf')
          
    insert into ct values('17asdf')
          
    insert into ct values('18asdf')
          
    insert into ct values('19asdf')
          
    insert into ct values('20asdf')
          
         
    --接下来进入关键步骤,使用临时变量表
         declare @t table --在内存中建立一个临时变量表,运行结束后自动释放
          (  
            p 
    int identity(1,1),
            s 
    varchar(20)  --一定要与ct表的那个 [ss] 字段数据类型一致
          )
          
          
    --向变量表中放入内容
          insert into @t select * from ct --将ct 表中的内容查询到@t表中
          --下面是做个测试查询,应该有内容才对,但你可以看看你的数据库中并没有这张表
          select * from @t        
          
          
    --现在就可以在@t表中查询第M到第N条记录了(这个是向表中查询第12条第15条记录)
          select * from
          (
           
    select top 4 * from 
            (
    select top 15 * from @t order by p ) t
            
    order by p desc 
          )   t2 
    order by p
          
    -- 如果是向表中查询第M到第N条记录,则15那个位置代表:N,而4那个位置代表:N-M+1;
          -- 查询出来的结果最终包含第M条记录,也包含第N条记录
    1> 先按临时id取出1到N条记录,如:(select top 15 * from @t order by p ) ;
    2>接着去掉M条记录之前的所以数据,剩下就是M-N条记录了,如:select top 4 * from t order by p desc ;
    3>取出M-N条记录,OK! select * from t2

    转自:http://www.cnblogs.com/leeyan/articles/1395377.html

  • 相关阅读:
    NeurIPS 2018 中的贝叶斯研究
    史上最全采样方法详细解读与代码实现
    采样方法(二)MCMC相关算法介绍及代码实现
    第七十四篇:机器学习优化方法及超参数设置综述
    论文阅读:《Bag of Tricks for Efficient Text Classification》
    训练技巧详解【含有部分代码】Bag of Tricks for Image Classification with Convolutional Neural Networks
    数值分析-Legendre正交多项式 实现函数逼近
    指针生成网络(Pointer-Generator-Network)原理与实战
    强化学习入门 第五讲 值函数逼近
    UniGUI的 TUniPageControl控件动态拖动tabsheet的实现方法
  • 原文地址:https://www.cnblogs.com/kelin1314/p/1606516.html
Copyright © 2011-2022 走看看