Question

Formatted question description: https://leetcode.ca/all/176.html

 176. Second Highest Salary

 Write a SQL query to get the second highest salary from the Employee table.

 +----+--------+
 | Id | Salary |
 +----+--------+
 | 1  | 100    |
 | 2  | 200    |
 | 3  | 300    |
 +----+--------+

 For example, given the above Employee table, the query should return 200 as the second highest salary.
 If there is no second highest salary, then the query should return null.

 +---------------------+
 | SecondHighestSalary |
 +---------------------+
 | 200                 |
 +---------------------+

Algorithm

Note on null results.

Syntax: IFNULL(expression, alt_value)

Code

SQL

SELECT
    IFNULL(
        (
            SELECT DISTINCT Salary
            FROM Employee
            ORDER BY Salary DESC
            LIMIT 1 OFFSET 1
        ),
        NULL
    )
AS SecondHighestSalary


-- below is ok, but not handling null issue
SELECT
    (SELECT DISTINCT
            Salary
        FROM
            Employee
        ORDER BY Salary DESC
        LIMIT 1 OFFSET 1) AS SecondHighestSalary;

All Problems

All Solutions