表字段
id    name   grade 表中无序存放N条数据,现在希望得到排名前十中不是前五的人的信息 我的想法是
select top 10 * from table1 order by grade
except
select top 5 * from table1 order by grade但是会出错 提示except附近有错误 应该怎么写呢? 

解决方案 »

  1.   

    select * from
    (select top 10 * from table1 order by grade desc)
    except
    select * from
    (select top 5 * from table1 order by grade desc)
      

  2.   

    select * from
    (select top 10 * from table1 order by grade desc) t1
    except
    select * from
    (select top 5 * from table1 order by grade desc) t2
      

  3.   


    测试不行哦 还是提示except 附近有错误
      

  4.   


    select top 10 * 
    from table1 
    where id not in (select top 5 id from table1 order by grade desc)
    order by grade desc
      

  5.   

    2000不能用except,用not exists或者not int
      

  6.   


    这样拿到的是去掉前五名之后的人中的前十名  正确的应该是
    SQL codeselect top 5 *
    from table1
    where id not in (select top 5 id from table1 order by grade desc)
    order by grade desc
    吧 感谢二位的回答 ~ 加分 结贴