主键ID不一定是连续的,何解???

解决方案 »

  1.   


    select * from (SELECT ROW_NUMBER() over ( order by id desc) as id ,* from table )a where id between 31 and 40
      

  2.   

    select top 10 * from (select top 40 * from tableA order by id desc) order by id asc
      

  3.   

    3楼是2005,用top吧,这个不就是分页吗
      

  4.   

    select top 10 * from table1 where id not in (select top 30 id from table1)
      

  5.   

    SELECT * FROM 
    (SELECT TOP 40 * FROM 表A ORDER BY ID) A 
    WHERE ID NOT IN (SELECT TOP 30 ID FROM 表A ORDER BY ID) 
      

  6.   


    SELECT IDENTITY(INT,1,1) AS ID2 ,* INTO #TABLE FROM TABLE1 SELECT * FROM #TABLE WHERE ID2 BETWEEN 31 AND 40
      

  7.   


    SELECT TOP 10 * FROM (SELECT TOP 40 * FROM TABLE ORDER BY ID ASC)A   ORDER BY ID DESC
      

  8.   


    SELECT TOP 10 * FROM (SELECT TOP 40 * FROM TABLE ORDER BY ID ASC)A   ORDER BY ID DESC
    推荐这个,不赞成用not in
      

  9.   


    再排一次就行了
    SELECT * FROM (SELECT TOP 10 * FROM (SELECT TOP 40 * FROM TABLE ORDER BY ID ASC)A   ORDER BY ID DESC)B ORDER BY ID ASC
      

  10.   

    7L那种方法不行的。如果ID是断的就不能这样做了。SELECT * FROM table LIMIT 31,40;
    轻松搞定
      

  11.   

    如果是sqlserver 的话用这个吧select * from(select top 3 * from (select top 10 * from books order by bno)a order by bno desc)a order by bno asc