请教高手删除前20笔的资料如何写sql?
取出30-50笔之间的资料的sql如何写?

解决方案 »

  1.   

    delete tb
    where id in(select top 20 id from tb order by id)select top 30 * 
    from (
    select top 50 * from tb order by id
    ) t order by id desc
      

  2.   

    select top 20 * 
    from (
    select top 50 * from tb order by id
    ) t order by id desc
      

  3.   


    --删除前20笔的资料
    delete tb
    where id in(select top 20 id from tb order by id)
    --取出30-50笔之间的资料
    select top 20 * 
    from (select top 50 * from tb order by id desc) t
    order by id desc
      

  4.   

    更正下:
    --取出30-50笔之间的资料
    [code=SQL][/
    select top 20 * 
    from (select top 50 * from tb order by id desc) t
    code]
      

  5.   

    --删除前20笔的资料 方法2:delete tb from (select top 20 * from t ) t
    where tb.id=t.id
      

  6.   

    --删除前20笔的资料 delete tb 
    from (select top 2 * from tb ) t
    where tb.id=t.id
      

  7.   



    --如果ID从1开始计数,并且是连续递增的
    select * from tb where id between 30 and 50--如果ID是递增的select * 
    from 
    (
      select 
        *,
        px=(select count(1)+1 from tb where id<t.id) 
      from tb t
    ) tt
    where px between 30 and 50
      

  8.   

    set rowcount 20delete from tb