select p.name, p.salary from payroll p
where 3 >= (select count(*) from payroll pp
where pp.salary >= p.salary);
我不是很赞同这种用法:
select z.keyField,z.numberField from tableName z where 3>=(select count(*) from szz01 zz where zz.numberField>=z.numberField)
这种方法查询速度太慢,
如果改成:
select z.keyField,z.numberField from (select keyField,numberField from tableName order by numberField desc) z where rownum<=3
执行速度可以大大提高,同样只返回了少量的结果.
个人之见,请指正!