题目:请按照学习成绩的大小,输出名次在10-20之间的学生的信息
表结构:id(primary key),stu_Name,stu_Score
尽量在一个表里,如不行,也可以分开请各位指点!
谢谢

解决方案 »

  1.   

    select * from tablename a
    where (select count(*) from tablename where stu_Score>a.stu_Score or stu_Score=a.stu_Score and id<=a.id) between 10 and 20
      

  2.   

    select *,(select count(*) from tablename where stu_Score>a.stu_Score or stu_Score=a.stu_Score and id<=a.id) as 名次 from tablename a
    where (select count(*) from tablename where stu_Score>a.stu_Score or stu_Score=a.stu_Score and id<=a.id) between 10 and 20
      

  3.   

    SELECT TOP 10 * FROM TEST WHERE id not in(SELECT TOP 10 id FROM TEST ORDER BY stu_Score) ORDER BY stu_Score,id
      

  4.   

    SELECT B.Id, B.Stu_Name, B.Stu_Score 
    FROM
    (SELECT A.*, ROW_NUMBER() OVER(ORDER BY StuScore DESC) AS RowId FROM StudentScore A) AS B
    WHERE B.RowId BETWEEN 10 AND 20
      

  5.   

    select top 10 * from TblName where stu_Score >(select max(stu_Score) from (select top 10 stu_Score from TblName order by stu_Score desc)as tblTmp) order by stu_Score