簡體   English   中英

前N個查詢-SQL Server 2008

[英]Top N Query - SQL Server 2008

我將如何從SQL Server返回前N個查詢。 我知道如何在Oracle中完成

SELECT Empno, Ename, Job, Mgr, Hiredate, Sal FROM (SELECT Empno, Ename, Job, Mgr, Hiredate, Sal FROM Emp ORDER BY NVL(Sal, 0) DESC) WHERE ROWNUM < 6;

但是,如何在SQL Server中編寫相同的查詢? 我從未在SQL Server上工作過。 因此,任何經典的解決方案都值得贊賞。

謝謝

在SQL Server中,您可以實現以下行為:

SELECT TOP 6 Empno, Ename, Job, Mgr, Hiredate, Sal FROM Emp ORDER BY NULLIF(Sal, 0) DESC;

這很容易:

SELECT TOP 100 ....

你可以試試

select top <n> ....

我認為您正在尋找的是select top N ,像這樣:

SELECT TOP 6 Empno, Ename, Job, Mgr, Hiredate, Sal FROM (SELECT Empno, Ename, Job, Mgr, Hiredate, Sal FROM Emp ORDER BY NVL(Sal, 0) DESC);

只需在select中使用TOP即可根據order子句獲得第一個值,或者如果不存在,則根據鍵或索引得到第一個值。

SELECT  top <n> *
FROM    Table1
ORDER BY OrderCol <desc>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM