手撕SQL
1.输出第2高的工资,空输出为null(leetcode 176)
编写一个 SQL 查询,获取并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水,查询应该返回 null
select
(
select distinct salary
from Employee
order by salary desc limit 1,1
) as SecondHighestSalary;
2.输出第n高的工资,空输出为null(leetcode 177)
编写一个SQL查询来报告 Employee 表中第 n 高的工资。如果没有第 n 个最高工资,查询应该报告为 null 。
notes:临时表+distinct+order by+limit
limit的用法:
limit 2,1 跳过2条取1条,即获取第三条
limit 2 offset 1 跳过1条取2条,即获取的第2,3的数据
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
SET n=N-1;
RETURN (
# Write your MySQL query statement below.
select