比方說,表中的聚族索引是nameselect top 10 * from 
(select * from 
(select top 20 * from TableName order by name) ss order by name desc) tt;

解决方案 »

  1.   

    方法2:select top 20 identity(int,1,1) id,* into #temp1 from TableName;
    go
    set ROWCOUNT 10
    go
    delete from #temp1;
    go
    select * from #temp1;
    go
    set ROWCOUNT 0;
      

  2.   

    这个问题不是前几天有人问过并且各位大虾已回答过吗?
    请查阅‘已解决’问题中‘SQL SERVER2000能实现查询从n条记录 到m条记录的功能吗?’
      

  3.   

    这个问题不是前几天有人问过并且各位大虾已回答过吗?
    请查阅‘已解决’问题中‘SQL SERVER2000能实现查询从n条记录 到m条记录的功能吗?’
      

  4.   

    我已经替你找到了浪客大虾的答案:(不要说我剽窃哦):hi,nanhill经过了半个小时的试验和测试我已以找出了答案先说一下为什么前面的解法行不通,minus不行;order by key_id(唯一索引字段)可能打乱表的自然顺序;set rowcount n 只能限制对前n条记录进行操作,也不起多大作用。
    你说的第10条到第20条记录我理解为共11条记录,解法如下:select top 9 * into #temp from table
    select top 20-10+1 * from table where key_id 
    not in (select key_id from #temp)为什么括号内不能换成select top 10 key_id from table的原因你试一下就明白了。
      

  5.   

    zhuzhichao(竹之草),用第一种方法好像把顺序反掉了,有什么办法搞定这个问题?
    第二种方法要临时表,不想用Amy2008(夏茵) 不用临时表该怎么办呢?
      

  6.   

    select top 10 * from 
    (select * from 
    (select top 20 * from TableName order by name) ss order by name desc) tt
    order by name order by name;
      

  7.   

    结账,多谢班主zhuzhichao(竹之草) 和 Amy2008(夏茵) 
    但是我是这样写的,在SQL2000中可以用,我还要到SQL70试试看行不行select * from(
    select top 10 * from 
    (select top 20 * from t_esong order by esid) ss order by esid desc) 
    as dd order by esid