【发布时间】:2020-08-01 15:31:56
【问题描述】:
我编写了以下 SQL 命令,用于从名为 Employee 的表中检索数据。
我能够获得最高/最高薪水以及第二最高/最高薪水,但是当需要返回整个记录时,我很难写出相同的薪水。
选择所有员工。
SELECT * FROM Employee
返回最高工资。这将返回最高工资金额,即 90000
SELECT MAX(salary) FROM Employee
返回工资最高的员工记录。这将返回该人的所有记录,他们的薪水是最高薪水,即 90000,在这种情况下只有 John Henry。
SELECT *
FROM Employee
WHERE salary = ( SELECT MAX(salary) FROM Employee )
返回所有其他员工记录;即除了薪水最高的人之外的所有人。
SELECT *
FROM Employee
WHERE salary != ( SELECT MAX(salary) FROM Employee )
返回第二高的薪水。这将返回第二个最高工资金额,即 85000
SELECT MAX(salary) FROM Employee
WHERE salary != ( SELECT MAX(salary) FROM Employee )
返回工资第二高的员工记录。这将返回一个/人的所有记录,他们的薪水是第二个最高薪水,即 85000,在这种情况下只有 Michael Greenback。
我被困在这个...我尝试使用HAVING 作为额外条件,但是我安排它来指定一个条件,我得到语法错误。我该怎么做?
【问题讨论】:
标签: sql