2010-03-15 88 views

回答

3

的SQL Server 2000+:

SELECT TOP 2 
     e.* 
    FROM EMPLOYEE e 
ORDER BY e.salary DESC 

MySQL的Postgres的&:

SELECT e.* 
    FROM EMPLOYEE e 
ORDER BY e.salary DESC 
    LIMIT 2 

甲骨文:

SELECT x.* 
    FROM (SELECT e.*, 
       ROWNUM as rn 
      FROM EMPLOYEE e 
     ORDER BY e.salary DESC) x 
WHERE x.rn <= 2 
1

试试这个..

SELECT * from Employee order by Salary desc limit 2 ; 
+1

或者,如果使用SQLSERVER,_select顶部2 *从员工为了通过salary_。 – 2010-03-15 04:13:45

0

SELECT TOP 2 * FROM员工ORDER BY工资DESC;

0

你应该写这样的东西。

SELECT TOP 2的EmpID,工资,名字从员工ORDER BY工资

0

又一解决方案:

With NumberedItems As 
    (
    Select EmpId, Salary, Name 
     , Row_Number() Over (Order By Salary Desc) As SalaryRank 
    From Employee 
    ) 
Select EmpId, Salary, Name 
From NumberedItems 
Where SalaryRank <= 2 
+0

'ROW_NUMBER()'(CTE too)is SQL Server 2005+ – 2010-03-15 04:35:37

+0

尽管技术上OP没有指定SQL的版本。从技术上讲,它可能是不存在TOP命令的SQL Server 4.2。 ;) – Thomas 2010-03-15 04:42:14