暂无图片
返回数说广场
锁钥
暂无图片
2024-07-07 技术支持、培训,喜欢分享、折腾的DBA
考虑如下语句: select employee_id, last_name from employees where salary > (select avg(salary) from employees); 子查询将在什么时候执行?(D) A、对于EMPLOYEES表的每条记录执行一次 B、和外部查询一起执行 C、在外部查询执行后 D、在外部查询执行前 解析: - 在这个查询中,子查询首先被执行,因为它是一个标量子查询(即返回单个值的子查询),并且它被用作`WHERE`子句中的一个条件。数据库需要先计算出平均薪资,然后才能基于这个平均值来过滤`employees`表中的记录。 - 换句话说,数据库不会为`employees`表中的每条记录都执行一次子查询。这样做将是非常低效的,因为这将导致大量的重复计算。相反,数据库会先计算子查询的结果(即平均薪资),然后将这个值存储在内存中(或类似的地方),并在`WHERE`子句中使用这个值来过滤记录。 - 因此,子查询在外部查询(即主查询)开始执行之前就已经完成了它的工作。
0
暂无图片 1
270
分享

评论

热门数说