sql server 2005 数据库,比如有10条数据,主键ID分别是1-10,
我现在想取出这样一条数据 就是按照ID排序,我可以指定排序位置,比如我要取这10条数据中按ID排序排在第5位的数据?
这样的Sql语句怎么写呢??

解决方案 »

  1.   

    select * from(select row_number() over (order by id ) num ,* from tableName) as temp 
    where num=5
      

  2.   


    select * from(select row_number() over (order by id ) num ,* from tableName) as temp 
    where num=5
      

  3.   


    select * from(select row_number() over (order by id ) num ,* from tablename) as temp 
    where num=5
      

  4.   

    取不到我想要的结果
    我现在前5条数据的ID分别是:1,4,5,6,7
    比如我想按ID升序排列取第3条,那么取出的数据就该是ID为5的数据,但是上面的语句取不到.
      

  5.   

    select * from (select row_number() over(order by id ) num from tablename) as temp 
    where temp.num=3
      

  6.   

    对不起是我搞错了,这条Sql语句好使.
      

  7.   

    不用row_number用top也可以
    select Top 1 * from 表名 where ID not in(select top 4 ID from 表名 order by ID)
      

  8.   

    这么写可以实现 但语法不严谨  还是用row_number吧