使用sql查询语言如何得到第n条记录的信息?例:t表有100条记录,如何得到第4条记录?

解决方案 »

  1.   

    --?select top 1 *
    from (select top 4 * from tb order by newid())
    order by newid() desc 
      

  2.   

    select top 1 * from (select top 4 * from 表名 order by 列名 desc)
      

  3.   

    select top 5* from A表 b
    where 列名A not in (select top 4 列名A from A表 order by 列名A asc ) a 
    order by 列名A asc
      

  4.   

    1)如果有关健字,则可以用
    SELECT * FROM table
    WHERE 字段=* 
    来进行查询2)如果没有,可以用identity()标识一下
    --增加自动编号列
    SELECT  IDENTITY(int,1,1) FID,* INTO #temp FROM name
    GO
    --查询第4条记录
    SELECT * FROM #temp WHERE FID=4
    GO
    DROP TABLE #temp当然,也可以用TOP来写.
    就看你觉得哪一种方法更方便了.
      

  5.   

    select top 5 * from tb where id not in (select top 4 id from tb)
      

  6.   

    取n到m条记录的语句(个人总结)(1).
    select top m * from tablename where id not in (select top n id from tablename)结果:从第n条记录开始,顺序取m条记录(2).
    select top m * into #a from tablename order by id -- 将top m笔插入
    set rowcount n `````````-- 设置固定显示的记录数
    select * from #a order by id desc -- 先倒序,再取3条记录结果:从第m-n+1条记录开始,顺序取n条记录
    ************************************************************
    SET ROWCOUNT
    使 Microsoft SQL Server 在返回指定的行数之后停止处理查询。
    ************************************************************(3).
    select top n * from 
    (select top m * from tablename order by id) a
    order by id desc结果:从第m-n+1条记录开始,顺序取n条记录(4).
    如果表里没有identity列,那么:
    select identity(int) id0,* into #temp from tablename取n到m条的语句为:
    select * from #temp where id0 >=n and id0 <= m结果:从第n条记录开始,顺序取m条记录************************************************************
    如果你在执行select identity(int) id0,* into #temp from tablename这条语句的时候报错,那是因为你的DB中间的select into/bulkcopy属性没有打开要先执行:
    exec sp_dboption 你的DB名字,'select into/bulkcopy',true
    ************************************************************(5).
    如果表里有identity列,那么:
    select * from tablename where id between n and m 结果:从第n条记录开始,顺序取m条记录
      

  7.   

    select top 5* from A表 b
    where 列名A not in (select top 4 列名A from A表 order by 列名A asc ) a 
    order by 列名A asc
      

  8.   

    用虚拟表,select top 4 * ,identity(int,1,1) TID into #tb from tableName
    select * from #tb where Tid=4