176 第二高的薪水

2021-08-28 17:46:36 字數 1164 閱讀 3206

編寫乙個 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...