Запрос на получение двух верхних строк из таблицы в SQL Server - PullRequest
3 голосов
/ 15 марта 2010

У меня есть таблица с именем Employee со следующими полями:

  • EmpID
  • Зарплата
  • Имя

Я хочу получить двух лучших сотрудников с максимальной зарплатой. Как мне написать этот запрос?

Ответы [ 5 ]

4 голосов
/ 15 марта 2010

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 голос
/ 15 марта 2010

Попробуйте это ..

SELECT * from Employee  order by Salary  desc limit 2 ;
0 голосов
/ 15 марта 2010

Еще одно решение:

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 голосов
/ 15 марта 2010

Вы должны написать что-то вроде этого.

ВЫБРАТЬ ТОП-2 EmpID, Зарплата, Имя ОТ РАБОТНИКА ПО ЗАРАБОТКЕ Зарплата

0 голосов
/ 15 марта 2010

ВЫБРАТЬ ТОП-2 * ОТ РАБОТЫ сотрудника по зарплате DESC;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...