如题

解决方案 »

  1.   

    SELECT TOP 20 *
    FROM tb
    ORDER BY ID DESC;
      

  2.   

    取n到m行1. 
    select top m * from tablename where id not in (select top n id from tablename order by id asc/*|desc*/) 2. 
    select top m * into 临时表(或表变量) from tablename order by columnname -- 将top m笔插入到临时表 
    set rowcount n   --只取n条结果
    select * from 表变量 order by columnname desc 3. 
    select top n * from  
    (select top m * from tablename order by columnname) a 
    order by columnname desc 
    4.如果tablename里没有其他identity列,那么: 
    先生成一个序列,存储在一临时表中.
    select identity(int) id0,* into #temp from tablename 取n到m条的语句为: 
    select * from #temp where id0 > =n and id0  <= 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 identity_col between n and m  6.SQL2005开始.可以使用row_number() over()生成行号
    ;with cte as
    (
     select id0=row_number() over(order by id),* from tablename
    )
    select * from cte where id0 between n to m
      

  3.   

    SELECT TOP 20 *
    FROM tb
    ORDER BY ID DESC;
      

  4.   


    SELECT * 
    FROM 
    (SELECT TOP 20 *
    FROM tb
    ORDER BY ID DESC) A
    ORDER BY ID
      

  5.   


    CREATE TABLE TBTEST(ID INT)
    INSERT TBTEST
    SELECT 1 UNION ALL
    SELECT 2 UNION ALL
    SELECT 5 UNION ALL
    SELECT 6 UNION ALL
    SELECT 3 UNION ALL
    SELECT 4 UNION ALL
    SELECT 11 UNION ALL
    SELECT 21 UNION ALL
    SELECT 61 UNION ALL
    SELECT 71 UNION ALL
    SELECT 81 UNION ALL
    SELECT 91 UNION ALL
    SELECT 7 UNION ALL
    SELECT 8 UNION ALL
    SELECT 9 UNION ALL
    SELECT 10 UNION ALL
    SELECT 12 UNION ALL
    SELECT 13 UNION ALL
    SELECT 14 UNION ALL
    SELECT 15 UNION ALL
    SELECT 16 UNION ALL
    SELECT 17 UNION ALL
    SELECT 18 UNION ALL
    SELECT 19 UNION ALL
    SELECT 20 SELECT NEW_ID=IDENTITY(INT,1,1),* INTO #TB FROM TBTESTSELECT TOP 20 ID FROM #TB ORDER BY NEW_ID DESC
     
    ID          
    ----------- 
    20
    19
    18
    17
    16
    15
    14
    13
    12
    10
    9
    8
    7
    91
    81
    71
    61
    21
    11
    4(所影响的行数为 20 行)
      

  6.   


    select * from (select top 2 ids= row_number() over (order by id),* from accps order by ids desc) a order by id asc
      

  7.   

    SELECT * FROM (SELECT TOP 20 * FROM tb ORDER BY ID DESC) A ORDER BY ID