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

  • 相关阅读:
    RHEL5.8配置开机自动挂载磁盘
    RHEL5.8配置NFS服务
    Linux环境下Oracle数据库启动停止命令
    使用的组件:Layui
    使用的组件:Jcrop
    使用的组件:ckeditor
    使用的组件:Web Uploader
    WebSphere试用过期问题处理
    webpack学习笔记(一)
    如何用node命令和webpack命令传递参数 转载
  • 原文地址:https://www.cnblogs.com/kelin1314/p/1606516.html
Copyright © 2011-2022 走看看