select top 1 sal from(SELECT DISTINCT TOP 6 sal
FROM salary
ORDER BY sal desc) a order by sal
我是sql server的新手可以任何一个请告诉我这个查询是如何找到第六高的 表工资的工资,我可以理解内部查询是找到前6名工资并按降序排列,但我无法理解的是,前1名应该从按工序降序排列的6个工资中给出最高薪水它如何返回最后(底部)薪水
答案 0 :(得分:1)
检查结尾处的order by
,默认情况下会提升,这意味着从最高6位工资中获得最低工资。
a
。这没有任何意义。
A'聪明的'查询是
SELECT sal
FROM salary
ORDER BY sal
OFFSET 5 ROWS FETCH 1 ROW ONLY;
答案 1 :(得分:1)
你怎么知道内部查询按降序返回前6名工资?
ORDER BY sal desc
DESC关键字将按降序排列....默认情况下,它按升序排序。外部查询的ORDER BY
不是ORDER BY DESC
因此,它返回内部查询返回的前6名工资中的最低工资。