表如下:id name
22  张三
23  李四
...
在表中,第一行的值是id=22,name=张三现在想实现是想取第二行的值,但是我并不知道里面的值,只知道要取第二行的值?select * from 表 where ...?where 条件怎么写?

解决方案 »

  1.   

    select * from (
    select *,ROW_NUMBER() over(order by id)  as rn from tb
    ) where rn=2???
      

  2.   

    or
    select * from (
    select *,ROW_NUMBER() over(order by getdate())  as rn from tb
    ) where rn=2
      

  3.   

    select top 1 * 
    from (select top 2 * from tb order by id) t
    order by id desc
      

  4.   

    select *
    from tb 
    where id=(select min(id) from tb where id>22)
      

  5.   

    select top 1 * from 
    (select top 2 * from tb order by 排序字段) a
    order by 排序字段 desc
      

  6.   

    select top 1 * 
    from 
    (
    select top 2 * from tb order by id
    ) t
    order by id desc
      

  7.   

    select top 2 * from tb 
    where id <>(select top 1 id from tb)
      

  8.   

    用下列的句子。
    SELECT * FROM table LIMIT 5,10;  // 检索记录行 6-15
      

  9.   

    如果是这样:
    select top 1 * from 表 where id>22 order by id
      

  10.   

    select * from tb  where id=(select min(id) from tb where id>22)
      

  11.   


    那这个
    select * from (
    select *,ROW_NUMBER() over(order by getdate())  as rn from tb
    ) where rn=2
      

  12.   

    2000的话加个自增列
    select id0=identity(int,1,1),* into #t from tb
    select id,name from  #t where id0=2
      

  13.   

    Msg 156, Level 15, State 1, Line 3
    关键字 'where' 附近有语法错误。
      

  14.   

    Msg 156, Level 15, State 1, Line 2
    关键字 'where' 附近有语法错误。
      

  15.   

    select top 1 * 
    from (select top 2 * from tb order by id) t
    order by id desc
      

  16.   

    select top 2 * from tb 
    最后一行就是
      

  17.   


    select * from (
    select *,ROW_NUMBER() over(order by getdate()) as rn from tb
    where rn=2丢了别名。
      

  18.   


    with romance as 
    (
    select *,rownumber=row_number()over(order by getdate())
    from table
    )
    select * from romance where rownumber=2