大多数子查询不需要排序,没有意义。因为子查询大多数是作为一个结果或参数给主查询使用。但top-n问题除外。
举个例子,查询员工表中“行政部”的员工。
select *
from emp
where empdetno = (select empdetno
from bmb
where bmname = '行政部')
子查询的结果给主查询作为一个参数,是否排序,对主查询的结果不会产生任何影响。
top-n问题,指的是什么呢?
在一个集合中,查询前n位。我们必须使用排序。
举个例子,查询会员表中余额前3位的会员。会员信息在会员表,余额在另一张表。
注意,余额前3位,所以,我们必须要对余额进行降序排列。如果不对余额进行排列,那么我们查出的结果一定是错误的。