码迷,mamicode.com
首页 > 数据库 > 详细

mysql--返回第N高的薪水(不存在返回null)

时间:2019-09-24 12:09:32      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:mys   部分   nbsp   分析   倒序   语义   bsp   null   最小   

技术图片

 

 

思路分析:( 结合IF(a,b,c) )

  1、首先我们需要判断如果我们对所有的工资进行去重 再 count 计数,观察工资的阶段的总和是否大于N(这里的N指的是我们需要查询的第N高的薪水),如果去重之后的工资的阶段的总和都小于N,那就说明我们要查询的第N高的工资肯定为null。

  技术图片------>>>>这部分相当于是IF语句中的a部分

 

  2、如果上述的a条件成立的话,那么我们就走第二步,要从表中筛选出我们需要的第N高的工资。子查询中的语义:首先对表中的工资去重查询,按照工资降序,因为我们要第N高的工资,所以我们干脆直接调用limit去筛选出倒序结果中的前N个数据,该数据中最小的数据也就是我们需要的结果。(工资倒序的话,越下面的数据越大)

技术图片

 

 

 

具体sql语句的实现:

  技术图片

 

 

 

MySQL中的IF函数知识点补充:

  IF(a,b,c) 首先对a判断是否成立,如果a结果为true,那么输出的结果就是b,如果a的结果是false,输出的结果是c

 

mysql--返回第N高的薪水(不存在返回null)

标签:mys   部分   nbsp   分析   倒序   语义   bsp   null   最小   

原文地址:https://www.cnblogs.com/vegetableDD/p/11577434.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!