LeetCode176 第二高的薪水

2021-10-12 01:49:51 字數 3539 閱讀 2708

sql架構

編寫乙個 sql 查詢,獲取employee表中第二高的薪水(salary) 。

+----+--------+

| id | salary |

+----+--------+

| 1 | 100 |

| 2 | 200 |

| 3 | 300 |

+----+--------+

例如上述employee表,sql查詢應該返回200作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應返回null

+---------------------+

| secondhighestsalary |

+---------------------+

| 200 |

+---------------------+

需要排除重複的值

再排個序

選出第二個

注意只有乙個資料的情況

# write your mysql query statement below

select

(select distinct

salary

from

employee

order by

salary

desc

limit 1 offset 1)

as secondhighestsalary

;/*法二

sql select distinct 語句語法:

select distinct 

column_name

from table_name;

sql order by 關鍵字order by 關鍵字用於對結果集按照乙個列或者多個列進行排序。

order by 關鍵字預設按照公升序對記錄進行排序。如果需要按照降序對記錄進行排序,您可以使用desc關鍵字。

語法:

select 

column_name1,column_name2

from table_name

order by

column_name1,column_name2

asc|desc;

sql limit子句要檢索查詢返回的行的一部分,請使用limitoffset子句。 以下說明了這些子句的語法:

select 

column_list

from

table1

order by

column_list

limit row_count offset offsetcolumnnumber;

在這個語法中,

row_count確定將返回的行數。

offset子句在開始返回行之前跳過偏移行。offset子句是可選的。 如果同時使用limitoffset子句,offset會在limit約束行數之前先跳過偏移行。

sql select ……as……語句

as 可理解為:用作、當成,作為;一般是重新命名列名或者表名。

1.例如有表table, 列 column_1,column_2

你可以寫成

select  column_1  as  列1, column_2 as  列2   from  table  as  表
上面的語句就可以解釋為,選擇 column_1 作為列1,column_2 作為列2 , 把 table 當成表

select * from employee as emp
這句意思是查詢所有employee 表裡面的資料,並把employee**命名為 emp。

當你命名乙個表之後,你可以在下面用 emp 代替 employee.

例如 select * from emp.

3.把查詢對像起個別名的作用。

select id as 使用者id,name as 使用者名稱 from table_user
mysql ifnull() 函式

ifnull() 函式用於判斷第乙個表示式是否為 null,如果為 null 則返回第二個引數的值,如果不為 null 則返回第乙個引數的值。

ifnull() 函式語法格式為:

ifnull(expression, alt_value)
如果第乙個引數的表示式 expression 為 null,則返回第二個引數的備用值。

引數說明:引數

描述expression

必須,要測試的值

alt_value

必須,expression 表示式為 null 時返回的值

select distinct salary

from employee

order by salary desc

limit 1 offset 1;//若salary只有乙個值,則什麼都不返回,null也沒有

select distinct

salary as secondhighestsalary

from

employee

order by salary desc

limit 1 offset 1

;//若salary只有乙個值,則為null,secondhighestsalary的值不存在,也不為空

錯誤結果

為空時,正確結果應為:(null)

Leetcode 176 第二高的薪水

編寫乙個 sql 查詢,獲取 employee 表中第二高的薪水 salary id salary 1 100 2 200 3 300 複製 例如上述 employee 表,sql查詢應該返回 200 作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應返回 null。secondhighestsa...

Leetcode176 第二高的薪水

題目 編寫乙個 sql 查詢,獲取 employee 表中第二高的薪水 salary id salary 1 100 2 200 3 300 例如上述 employee 表,sql查詢應該返回 200 作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應返回 null。secondhighestsa...

Leetcode 176 第二高的薪水

題目難度 簡單題目描述 編寫乙個 sql 查詢,獲取 employee 表中第二高的薪水 salary 例如上述 employee 表,sql查詢應該返回 200 作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應返回 null。預期結果 正確答案 select max salary as sec...