175.组合两个表
表1: Person 表2: Address编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
FirstName, LastName, City, State
方法:
按照题目要求,使用left join,将左表的所有行包含进去:
select p.FirstName, p.LastName, a.City, a.State
from Person p left join Address a
on p.PersonId =a.PersonId
176.第二高的薪水
编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。
表 Employee
例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。
方法一:
该方法利用max函数对salary中最大的数进行过滤后,再次使用max函数选择最大的数。
select max(Salary) as SecondHighestSalary
from Employee
where Salary<(select max(Salary) from Employee)
方法二:
1、题目要求不存在就返回null,该方法使用ifnull函数;
2、利用dictinct对重复数据去重;
3、limit[offset,n]函数进行偏移选择。
select ifnull(
(select distinct Salary
from Employee
order by Salary desc limit 1,1), null)
as SecondHighestSalary
网友评论