当前位置: 首页> 文旅> 艺术 > 中国建筑工程机械人才培训网官网_网站风格定位_yandex网站推广_百度竞价优化

中国建筑工程机械人才培训网官网_网站风格定位_yandex网站推广_百度竞价优化

时间:2025/7/9 6:46:13来源:https://blog.csdn.net/2401_84568462/article/details/145916891 浏览次数:0次
中国建筑工程机械人才培训网官网_网站风格定位_yandex网站推广_百度竞价优化

第二高薪水

本题求Employee表中的第二高的不同薪水,也就是说如果Employee表是:

则第二高的薪水是2000。

题目要求输出的格式是:

对应的sql语句:

该语句的执行顺序:

1.从Eomployee表中选取所有行。

2.对salary列进行去重。

3.按照salary列的值进行降序排序。

4.从取第一行下面的一行记录。

由于子查询到的salary可能是空的,因此需要用到ifnull函数来处理结果为空的情况

ifnull(参数1,参数2)如果参数1不为空则返回参数1的值,否则返回参数2的值。

这里有一个细节点:就是我们要注意题目让我们输出的格式(列名格式),先看下面的sql语句。

SELECT FIND_IN_SET('d','a,b,c,d') as `index`;

find_in_set函数返回的值是4如果不使用as对列名重命名则结果是:

 因此我们要使用as对列名进行重命名。

 

部门工资前三高的所有员工

  

selectd.name 'Department', e1.name 'Employee',e1.salary
fromemployee e1 join department d on e1.DepartmentId = d.id
where3 > (selectcount(distinct e2.salary)fromEmployee e2wheree2.salary > e1.salaryand e2.DepartmentId = e1.DepartmentId)
;

 执行的顺序是:

1.employee表和department表按照条件进行内连接。

2.进行子查询,从e1表中第一行开始,e1中的每一条记录都要和e2的所有记录比较,通过聚合函数筛选出e2表中有三条以下比e1大,则该e1满足条件。

关键字:中国建筑工程机械人才培训网官网_网站风格定位_yandex网站推广_百度竞价优化

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: