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