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子句要檢索查詢返回的行的一部分,請使用limit
和offset
子句。 以下說明了這些子句的語法:
select
column_list
from
table1
order by
column_list
limit row_count offset offsetcolumnnumber;
在這個語法中,
row_count
確定將返回的行數。
offset
子句在開始返回行之前跳過偏移行。offset
子句是可選的。 如果同時使用limit
和offset
子句,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...