select top 3 * from 表 a where 课号 = a.课号 order by 成绩 desc
没有子查询,用where 课号 = a.课号是没有意义的,该句是先选出结果再TOP 3为去成绩前三名的记录select 学号,课号,成绩
from 表 a
where 学号 in (select top 3 学号 from 表 a where 课号 = a.课号 order by 成绩 desc)
是确定前三名的学号,条件是学号为KEY二者效果是一样的,第一句少一此扫描所以速度要快
没有子查询,用where 课号 = a.课号是没有意义的,该句是先选出结果再TOP 3为去成绩前三名的记录select 学号,课号,成绩
from 表 a
where 学号 in (select top 3 学号 from 表 a where 课号 = a.课号 order by 成绩 desc)
是确定前三名的学号,条件是学号为KEY二者效果是一样的,第一句少一此扫描所以速度要快
回复人: jyk1970() ( ) 信誉:100 2004-01-28 17:44:00 得分:0
1、第一句课号可能为参数,这意味着一次只能查询一个课号的情况2、第二句目的是一次查询所有课号的情况