MySQL常见的几种排序类问题

2022-10-24 11:05:39

总结几个mysql常见的几种对结果集排序问题,点击此处,获取建表语句及其数据

按照部门编号的升序,且对每个部门进行薪资降序

思路说明:order by可以同时对多个字段进行排序,字段之间使用逗号隔开

-- 使用逗号对两个要进行排序的字段进行分隔(默认升序,desc降序)select dept_id,salaryfrom empORDERBY dept_id, salarydesc

在这里插入图片描述

对部门id 以及 岗位进行合并,并按照部门id进行升序

思路说明:concat进行字段合并,合并之后需要字符类型,无法正常排序,只截取数字的进行排序

-- substr(要截取的字段,从哪里开始截取,截取的长度)select*,
		concat(dept_id,"_",position)as dept_posfrom  empORDERBY SUBSTR(dept_pos,1,2)

在这里插入图片描述

按照销售的薪资进行排序,如果不是销售 按照入职时间进行排序

思路说明:order by后面可以写case when语句

select*from emporderbyCASEWHEN position="销售"then salaryELSE induction_dateend

在这里插入图片描述

按照绩效的多少对员工进行排序,没有绩效的放到最后

思路说明:先判断 绩效 字段是不是 null,如果 返回0,然后按照绩效进行排序

SELECT*FROM(SELECT*,CASEWHEN commissionISNULLTHEN0ELSE1ENDAS is_nullFROM emp) tORDERBY
	is_nulldesc,
	commission

在这里插入图片描述

  • 作者:BeefpasteC
  • 原文链接:https://blog.csdn.net/ybw_2569/article/details/125769040
    更新时间:2022-10-24 11:05:39