一、组合两个表
表1: Person
+————-+———+
| 列名 | 类型 |
+————-+———+
| PersonId | int |
| FirstName | varchar |
| LastName | varchar |
+————-+———+
PersonId 是上表主键
表2: Address
+————-+———+
| 列名 | 类型 |
+————-+———+
| AddressId | int |
| PersonId | int |
| City | varchar |
| State | varchar |
+————-+———+
AddressId 是上表主键
编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
FirstName, LastName, City, State
select FirstName, LastName, City, State
from Person left join Address on Person.PersonId = Address.PersonId;
二、第二高的薪水
Employee 表:
+————-+——+
| Column Name | Type |
+————-+——+
| id | int |
| salary | int |
+————-+——+
id 是这个表的主键。
表的每一行包含员工的工资信息。
编写一个 SQL 查询,获取并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水,查询应该返回 null 。
查询结果如下例所示。
示例 1:
输入:
Employee 表:
+—-+——–+
| id | salary |
+ —-+——–+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+ —-+——–+
输出:
+———————+
| SecondHighestSalary |
+———————+
| 200 |
+———————+
示例 2:
输入:
Employee 表:
+—-+——–+
| id | salary |
+—-+——–+
| 1 | 100 |
+—-+——–+
输出:
+———————+
| SecondHighestSalary |
+———————+
| null |
+———————+
select(
select distinct salary as SecondHighestSalary
from Employee
order by salary desc
limit 1,1
) as SecondHighestSalary;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/125045.html