本文主要是介绍LeetCode数据库题目Oracle解答:175. 组合两个表,176. 第二高的薪水,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
175. 组合两个表
表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 a.firstname,a.lastname,b.city,b.STATE
FROM person a
LEFT JOIN address b ON a.personid = b.personid
176. 第二高的薪水
编写一个 SQL 查询,获取 Employee
表中第二高的薪水(Salary) 。
+----+--------+
| Id | Salary |
+----+--------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+----+--------+
例如上述 Employee
表,SQL查询应该返回 200
作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null
。
+---------------------+
| SecondHighestSalary |
+---------------------+
| 200 |
答案:
SELECT MAX(Salary) AS SecondHighestSalary
FROM Employee
WHERE Salary < (SELECT MAX(Salary)FROM Employee)
这篇关于LeetCode数据库题目Oracle解答:175. 组合两个表,176. 第二高的薪水的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!