大数据第30天-Mysql练习题2-杨大伟
需求二:编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary)。如果不存在第二高的薪水,那么查询应返回 null。
展示效果:
SecondHighestSalary |
---|
200 |
建表语句:
1 Create table If Not Exists Employee (Id int, Salary int); 2 3 insert into Employee (Id, Salary) values (1, 100); 4 insert into Employee (Id, Salary) values (2, 200); 5 insert into Employee (Id, Salary) values (3, 300);
最终SQL:
1 方法一: 2 select ( 3 select 4 DISTINCT Salary 5 from 6 Employee 7 order by 8 Salary DESC 9 limit 1,1 10 ) as SecondHighestSalary; 11 方法二: 12 select 13 max(Salary) as SecondHighestSalary 14 from 15 Employee 16 where 17 Salary < (select 18 max(Salary) 19 from 20 Employee 21 );
提示:LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。