編寫乙個 sql 查詢,獲取employee
表中第二高的薪水(salary) 。
+----+--------+
| id | salary |
+----+--------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+----+--------+
例如上述employee
表,sql查詢應該返回200
作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應返回null
。
+---------------------+
| secondhighestsalary |
+---------------------+
| 200 |
+---------------------+
思路:這個題目不太好寫,坑特別多:
1、首先要注意對錶的進行倒敘排序desc,然後輸出從上面數的第二行:
語句1:select * from student limit 9,4
語句2:slect * from student limit 4 offset 9
// 語句1和2均返回表student的第10、11、12、13行
//語句2中的4表示返回4行,9表示從表的第十行開始
2、如果寫成上面**這種形式會報錯,此時當不存在第二高薪水,上面這種查詢返回的是空值,沒找到
select distinct salary as secondhighestsalary
from employee
order by salary desc
limit 1, 1
寫成下面這種形式才是對的,這個時候,如果內層查詢返回空值的話,從乙個空的表中查資料會返回null,未定義的
select
(select distinct salary from employee
order by salary desc
limit 1, 1 )
as secondhighestsalary
176 第二高的薪水
編寫乙個 sql 查詢,獲取 employee 表中第二高的薪水 salary idsalary 1100 2200 3300 例如上述 employee 表,sql查詢應該返回 200 作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應返回 null。secondhighestsalary 20...
176 第二高的薪水
編寫乙個 sql 查詢,獲取 employee 表中第二高的薪水 salary id salary 1 100 2 200 3 300 例如上述 employee 表,sql查詢應該返回 200 作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應返回 null。secondhighestsalar...
176 第二高的薪水
sql架構 編寫乙個 sql 查詢,獲取employee表中第二高的薪水 salary id salary 1 100 2 200 3 300 例如上述employee表,sql查詢應該返回200作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應返回null。secondhighestsalary...