2010-03-15 4 views

Répondre

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 

Oracle:

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

Try this ..

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

Ou, si vous utilisez SqlServer, _select top 2 * des employés par ordre salary_. –

0

SELECT TOP 2 * de l'employé ORDER BY Salaire DESC;

0

Vous devriez écrire quelque chose comme ceci.

SELECT TOP 2 EmpID, Salaire, Nom de l'employé ORDER BY Salaire

0

Encore une autre solution:

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 aussi) est SQL Server 2005+ –

+0

Bien que techniquement, l'OP n'a pas spécifié la version de SQL. Techniquement, cela aurait pu être SQL Server 4.2 dans lequel la commande TOP n'existerait pas. ;) – Thomas

Questions connexes