題目**於leetcode資料庫:第二高的薪水
題目:編寫乙個 sql 查詢,獲取 employee 表中第二高的薪水(salary) 。
例如上述 employee 表,sql查詢應該返回 200 作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應返回 null。把第二高的薪水命名secondhighestsalary
第一步:從employee表中選出salary
第二步:對sarlary去重,使用distinct
select
distinct salary
from employee;
第三步:倒序排序,也即從大到小排序,排序使用order by ,倒序使用desc;
第四步:選出第二高的薪水,使用limit a offset b,跳過b行資料,選取a行資料
select
distinct salary
from employee
order by salary desc
limit 1 offset 1;
第五步:如果不存在第二高的薪水,那麼查詢值應為null。使用ifnull函式
select ifnull(
(select
distinct salary
from employee
order by salary desc
limit 1 offset 1),
null);
第六步:把第二高薪水命名為secondhighestsalary,使用as
select ifnull(
(select
distinct salary
from employee
order by salary desc
limit 1 offset 1),
null) as secondhighestsalary;
總結:
資料庫 SQL之LIMIT ,OFFSET
select prod name from products limit 4 offset 3 limit 4 offset 3指示mysql等dbms返回從第3行 從0行計數 起的4行資料。第乙個數字是檢索的行數,第二個數字是指從哪兒開始。mysql和mariadb支援簡化版的limit 4 of...
資料庫之SQL 一
模式 描述關於庫和表的布局的以及特徵的資訊 列和資料型別 行 主鍵 在資料庫增刪改查時用sql的關鍵字進行構成 sql的關鍵字不能是列表的名 sql語句由子句構成,有些子句是必須的,有些是可選的.乙個子句通常是由乙個關鍵字和所提供的資料組成的 not操作符 upper 可以將文字轉換成大寫 lowe...
資料庫之SQL語法
建立資料庫 create database mytest 建立表 create table t user primary key 定義該列為主鍵列 auto increment表示該列的值,由dbms自動生成,為自動增長列 auto tab鍵 id int primary key auto incr...