代码之家  ›  专栏  ›  技术社区  ›  prime23 hans

SQL,从表中选择第n到第m条记录,哪个查询更有效?

  •  0
  • prime23 hans  · 技术社区  · 16 年前

    面试问题:

    编写SQL Server查询以返回表a的第30到40条记录

    我的回答是:

    select top 10 * from (select top 40 * from tb desc) asc
    
    select top 40 * from A where id not in(select top 30 id from A) 
    

    2 回复  |  直到 16 年前
        1
  •  6
  •   Community Mohan Dere    9 年前

    不要使用它们中的任何一个,您可以更直接地选择那些第30-40行

    请参见: Row Offset in SQL Server

        2
  •  1
  •   Baaju    16 年前

    ;With CTETable AS 
    ( 
      SELECT ROW_NUMBER() OVER (ORDER BY Column_Name DESC) AS ROW_NUM, * FROM tb WHERE <CONDITION> 
    ) 
    
    SELECT Column_List FROM CTETable WHERE ROW_NUM BETWEEN <StartNum> AND <EndNum>