Write a SQL query to get the second highest salary from the Employee
table.
+----+--------+| Id | Salary |+----+--------+| 1 | | | 2 | | | 3 | |+----+--------+
For example, given the above Employee table, the second highest salary is 200
. If there is no second highest salary and then the query should return null
.
Test instructions: Query the second-highest wage, no returns NULL.
Idea 1: Direct sort to go heavy, here null to return NULL, so use the Ifnull () function.
Sql:
SELECT DISTINCT ifnull ((select distinct Salary from the employee ORDER by Salary desc-limit), null) from employee;
Understand that using nested select can replace the Ifnull function:
Select (select DISTINCT Salary from the Employee order by Salary desc limit);
Idea 2: Find the biggest. And find the biggest in the rest. Because the aggregate function can return null directly
Sql:
Select Max (Salary) from the employee where Salary < (select Max (Salary) from employee);
[Leetcode-database] Second Highest Salary