尝试运行此查询时出现语义错误,但看不到任何错误。
查找工资最低的员工的 ssn
select ssn from employee
where salary < ALL
( select salary from employee);
您试图找到低于所有其他薪水的薪水。那是行不通的,因为最低工资本身就在表中。当我们达到最低工资时,它会与表中的所有其他工资进行比较。但是<
当我们将最低工资与自身进行比较时,比较将失败。
您需要更改<
为<=
.
SELECT ssn FROM employee
WHERE salary <= ALL (SELECT salary FROM employee);
这将返回所有具有最低工资的员工的 ssn。等效地,
SELECT ssn FROM employee
WHERE salary = (SELECT MIN(salary) FROM employee);