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個工資如何返回最後(底部)工資請問這個查詢的工作
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個工資如何返回最後(底部)工資請問這個查詢的工作
檢查order by
最後,它默認上升,這意味着從最高的前6名工資中獲得最低工資。
a
是SQL Server在從子查詢中選擇時需要的。這裏沒有意義。
A「聰明」的查詢
SELECT sal
FROM salary
ORDER BY sal
OFFSET 5 ROWS FETCH 1 ROW ONLY;
感謝我現在瞭解 – Ashu
你怎麼知道內部查詢以降序返回前6名的薪水嗎?
ORDER BY sal desc
DESC關鍵字將按降序排列....默認情況下,它按升序排列。外部查詢有一個ORDER BY
而不是ORDER BY DESC
因此,它返回內部查詢返回的前6名工資中最低的工資。
謝謝,我明白了 – Ashu
TOP與MAX不一樣。 TOP按順序進行。 – tuespetre
top 1如何找到第6個最高應該找到最高薪水以及在此查詢中「a」的作用 – Ashu