select top 10 from news order by id desc   这个是查询前10条语句,排序为desc请问我查询第10条到第20条怎么写,或者是第20到第30条,排序也为desc当我在页面接收数据时,int i=int.Parse(Request.QueryString["page"].ToString());当i=1;的时候就是select top 10 from news order by id desc当i=2;的时候就是要查询第10条到第20条的数据,排序为desc当i=3,=4,=5的时候一次类推请问这样的SQL语句怎么写?

解决方案 »

  1.   

    select top 10 * from ( select top 30 * from table order by id asc)a order by  a.id desc
      

  2.   

    select top 10 * from news where id < 
    (select min(id) from (select  top 10*1 id from news order by id desc) b  ) order by id desc  
      

  3.   

    select top 10 * from news where id not in (select top 10 id from news order by id desc  ) order by id desc  
      

  4.   

    select top (pagesize) * from ( select top (pagesize*page) * from table order by id asc)a order by  a.id desc
      

  5.   

    with temptb as 
    (
      select row_num() over(order by id desc) as num,id from news
    ) select * 
    from temptb 
    inner join news on news.id = temptb.id 
    where num > 10 and num < 20 --此处10和20自己改
    order by temptb.id desc