Member 10629036 Ответов: 6

Как получить вторую по величине зарплату с помощью Sql server


Привет,

Как получить вторую по величине зарплату без использования двух выбранных заявлений пожалуйста дайте мне ответ

Благодарения

Member 10629036

Без использования двух операторов select я хочу знать запрос на вторую по величине зарплату.

[no name]

Почему?

Mandip Grewal

Пожалуйста, проверьте решение № 8, чтобы получить вторую по величине зарплату с помощью одного заявления SELECT

6 Ответов

Рейтинг:
2

DamithSL

SELECT MAX(Salary) FROM Employee
WHERE Salary NOT IN (SELECT MAX(Salary) FROM Employee )

или
select MAX(Salary) from Employee
WHERE Salary <> (select MAX(Salary) from Employee )


Рейтинг:
1

Sergey Vaselenko

SELECT
    TOP 1 *
FROM
    (
    SELECT
        TOP 2 *
    FROM
        Employee t
    ORDER BY
        t.Salary DESC
    ) t
ORDER BY
    t.Salary ASC


Рейтинг:
0

OriginalGriff

Попробуй:

WITH myTableWithRows AS (
    SELECT (ROW_NUMBER() OVER (ORDER BY myTable.Salary DESC)) as row,*
    FROM myTable)
SELECT * FROM myTableWithRows WHERE row = 2


Mandip Grewal

Если есть два сотрудника, которые имеют самую высокую зарплату, то этот запрос будет получать самую высокую зарплату второго сотрудника... Вы должны использовать функцию DENSE_RANK() вместо ROW_NUMBER()..

Рейтинг:
0

Mandip Grewal

Вы можете получить вторую по величине зарплату, используя следующие два запроса..

В первом запросе мы использовали CTE и DENSE_RANK для получения второй по величине зарплаты

WITH myTableWithRows AS (
SELECT (DENSE_RANK() OVER (ORDER BY myTable.Salary DESC)) as row,*
FROM myTable)

SELECT * FROM myTableWithRows WHERE row = 2


Во втором запросе SELF JOIN используется для получения второй по величине зарплаты, а также не использует два оператора SELECT.

SELECT top 1 t2.Salary 
FROM myTable t1, myTable t2
WHERE t1.Salary > t2.Salary 
ORDER BY t1.Salary DESC, t2.Salary DESC


Рейтинг:
0

Nirav Prabtani

попробовать это.. :)


select top 1 salary from tableName where salary < (select max(salary) from tableName) order by salary desc


Рейтинг:
0

SRINU.TIRRI

select max(salary) from emp where salary<(select max(salary) from emp)


Один раз попробуйте это выше запроса
Около
Упоминается.Т