使用子查询查找MySQL Employee表的最高和第二最高薪水?

您可以使用子查询从Employee表中获取最高和第二最高薪水。

让我们首先创建一个表。创建表的查询如下-

mysql> create table EmployeeMaxAndSecondMaxSalary
   -> (
   -> EmployeeId int,
   -> Employeename varchar(20),
   -> EmployeeSalary int
   -> );

使用插入命令在表中插入一些记录-

mysql> insert into EmployeeMaxAndSecondMaxSalary values(1,'John',34566);

mysql> insert into EmployeeMaxAndSecondMaxSalary values(2,'Bob',56789);

mysql> insert into EmployeeMaxAndSecondMaxSalary values(3,'Carol',44560);

mysql> insert into EmployeeMaxAndSecondMaxSalary values(4,'Sam',76456);

mysql> insert into EmployeeMaxAndSecondMaxSalary values(5,'Mike',65566);

mysql> insert into EmployeeMaxAndSecondMaxSalary values(6,'David',89990);

mysql> insert into EmployeeMaxAndSecondMaxSalary values(7,'James',68789);

mysql> insert into EmployeeMaxAndSecondMaxSalary values(8,'Robert',76543);

使用select语句显示表中的所有记录。查询如下-

mysql> select *from EmployeeMaxAndSecondMaxSalary;

以下是输出。

+------------+--------------+----------------+
| EmployeeId | Employeename | EmployeeSalary |
+------------+--------------+----------------+
|          1 | John         |          34566 |
|          2 | Bob          |          56789 |
|          3 | Carol        |          44560 |
|          4 | Sam          |          76456 |
|          5 | Mike         |          65566 |
|          6 | David        |          89990 |
|          7 | James        |          68789 |
|          8 | Robert       |          76543 |
+------------+--------------+----------------+
8 rows in set (0.00 sec)

使用子查询获取最高和第二最高薪水的查询-

mysql> select (select max(EmployeeSalary) from EmployeeMaxAndSecondMaxSalary) MaximumSalary,
   -> (select max(EmployeeSalary) from EmployeeMaxAndSecondMaxSalary
   -> where EmployeeSalary not in(select max(EmployeeSalary) from
EmployeeMaxAndSecondMaxSalary)) as SecondMaximumSalary;

以下是显示前两个薪水的输出-

+---------------+---------------------+
| MaximumSalary | SecondMaximumSalary |
+---------------+---------------------+
|         89990 |               76543 |
+---------------+---------------------+
1 row in set (0.00 sec)