我在SQL中有一个表Employee_Details,有三列,Name,Age和Salary。我遇到了这个问题,从表格中选择最高薪水。
SELECT *
FROM Employee_Details e
WHERE 0 = (
SELECT count(DISTINCT Salary)
FROM Employee_Details
WHERE Salary > e.Salary
)
我不知道'0'表示什么。有谁能请给我一个主意。
答案 0 :(得分:1)
这只是一个条件,表示内部Employee_Details
查询中SELECT
表的计数必须为0(没有人可以获得比在外部{{1}中选择的员工更高的薪水}})
这样做的方法对我来说有点奇怪......我可能会用这样的东西:
SELECT
应该会产生相同的结果 - 只是我觉得你想要达到的目标要清楚得多。
答案 1 :(得分:0)
从表Employee_details获取所有工资,其中薪水数为0
答案 2 :(得分:0)
您的查询可以写成SELECT TOP 1 WITH TIES * FROM Employee_Details e ORDER BY Salary DESC
(用T-SQL方言)。原始查询中的条件检查Salary
中大于e
值的Salary的不同值的数量是否为零(即,没有更大的Salary
行。)