繁体   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