leetcode 176 第二高的薪水
- 題目
編寫一個SQL查詢,獲取'Employee'表中第二高的薪水。 +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | | 2 | 200 | | 3 | 300 | +----+--------+ 例如上述'Employee'表,SQL查詢應該返回'200'作爲第二高的薪水。 如果不存在第二高的薪水,那麼查詢應返回'null'。 +---------------------+ | SecondHighestSalary | +---------------------+ | 200 | +---------------------+
- 解
select ifnull( ( select distinct Salary from Employee order by Salary desc limit 1,1 ), null ) as SecondHighestSalary;
distinct
列出不同的值,用於返回唯一不同的值select distinct 列名 from 表名;
order by
用於根據指定的列對結果集進行排序
默認排序升序,如果需要降序可加關鍵字select * from 表名 order by 列名;
DESC
select * from 表名 order by 列名 desc;
limit
指定返回某行或某幾行select * from 表名 limit 5;
limit 5
指示mysql
返回不多於5
行,從第一行(行0)
開始,給出爲指定的要檢索的最大行數,如果沒有足夠的行,只返回能返回的幾行。
如果需要返回下一個3
行,需執行
也可使用替代語法select * from 表名 limit 5,3;
select * from 表名 limit 3 offset 5;
ifnull
判斷第一個表達式是否爲 NULL,如果爲 NULL 則返回第二個參數的值,如果不爲 NULL 則返回第一個參數的值。select ifnull(表達式,表達式爲null時要返回的值);