如何从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上工作过。所以任何经典的解决方案都值得赞赏。
由于
答案 0 :(得分:3)
在SQL Server中,您可以像这样实现此行为:
SELECT TOP 6 Empno, Ename, Job, Mgr, Hiredate, Sal FROM Emp ORDER BY NULLIF(Sal, 0) DESC;
答案 1 :(得分:1)
很简单:
SELECT TOP 100 ....
答案 2 :(得分:1)
你可以尝试
select top <n> ....
答案 3 :(得分:1)
我认为你要找的是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);
答案 4 :(得分:1)
只需在select中使用TOP
根据order子句获取第一个值,或者如果它不存在,则根据一个或多个索引。
SELECT top <n> *
FROM Table1
ORDER BY OrderCol <desc>