[英]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.