题目
查询年龄最大的职工姓名,下列语句正确的是()。A. SELECT 姓名 FROM 职工表 WHERE 年龄 = (SELECT MAX(年龄) FROM 职工表)B. SELECT 姓名 FROM 职工表 WHERE 职工号 = (SELECT MAX(职工号) FROM 职工表)C. SELECT 姓名 FROM 职工表 WHERE 年龄 = (SELECT MAX(年龄) FROM 职工表 ORDER BY 年龄 DESC)D. SELECT 姓名 FROM 职工表 WHERE 职工号 = (SELECT MAX(职工号) FROM 职工表 ORDER BY 年龄 DESC)
查询年龄最大的职工姓名,下列语句正确的是()。
A. SELECT 姓名 FROM 职工表 WHERE 年龄 = (SELECT MAX(年龄) FROM 职工表)
B. SELECT 姓名 FROM 职工表 WHERE 职工号 = (SELECT MAX(职工号) FROM 职工表)
C. SELECT 姓名 FROM 职工表 WHERE 年龄 = (SELECT MAX(年龄) FROM 职工表 ORDER BY 年龄 DESC)
D. SELECT 姓名 FROM 职工表 WHERE 职工号 = (SELECT MAX(职工号) FROM 职工表 ORDER BY 年龄 DESC)
题目解答
答案
A. SELECT 姓名 FROM 职工表 WHERE 年龄 = (SELECT MAX(年龄) FROM 职工表)
解析
考查要点:本题主要考查SQL子查询的使用,特别是如何通过MAX()函数结合子查询来筛选符合条件的记录。
解题核心思路:
- 确定目标:需要找到年龄最大的职工姓名。
- 关键步骤:
- 子查询:先通过
SELECT MAX(年龄) FROM 职工表获取最大年龄值。 - 外层查询:在职工表中筛选出年龄等于最大值的记录,取出对应的姓名。
- 子查询:先通过
- 易错点:注意区分“年龄最大”和“职工号最大”,避免混淆字段逻辑。
选项分析
选项A
SELECT 姓名 FROM 职工表 WHERE 年龄 = (SELECT MAX(年龄) FROM 职工表)
- 子查询:
(SELECT MAX(年龄) FROM 职工表)返回最大年龄值。 - 外层查询:筛选出年龄等于最大值的记录,取出姓名。
- 结论:正确,符合题意。
选项B
SELECT 姓名 FROM 职工表 WHERE 职工号 = (SELECT MAX(职工号) FROM 职工表)
- 逻辑错误:
MAX(职工号)返回职工号最大的记录,与年龄无关。 - 结论:错误,无法保证年龄最大。
选项C
SELECT 姓名 FROM 职工表 WHERE 年龄 = (SELECT MAX(年龄) FROM 职工表 ORDER BY 年龄 DESC)
- 冗余操作:
MAX(年龄)已直接返回最大值,ORDER BY无意义且可能引发语法错误。 - 结论:错误。
选项D
SELECT 姓名 FROM 职工表 WHERE 职工号 = (SELECT MAX(职工号) FROM 职工表 ORDER BY 年龄 DESC)
- 逻辑混乱:
MAX(职工号)与ORDER BY 年龄 DESC无关,无法关联年龄最大值。 - 结论:错误。