我在这个例子中使用了1个表,我们只使用FName,LName和Salary。我有一种感觉,我将使用嵌套查询找到MAX(薪水)。我应该在SELECT语句或WHERE语句中使用它以及如何指定+/-范围?
答案 0 :(得分:1)
你走在正确的轨道上。像这样:
SELECT *
FROM MyTable T
WHERE T.Salary > ((
SELECT MAX(Salary)
FROM MyTable
) - 10000);
未经测试但应该有效 - 想法是获得最高工资,然后只选择最高工资10,000以内的工资。换句话说,选择工资大于最高工资减去10,000。
答案 1 :(得分:1)
我建议使用分析函数:
select t.*
from (select t.*, max(salary) over () as maxs
from t
) t
where salary > maxs - 1000;
分析函数通常比子查询更好地进行优化。