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

mysql--返回第N高的薪水(不存在返回null)_第1张图片

 

 

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

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

  ------>>>>这部分相当于是IF语句中的a部分

 

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

 

 

 

具体sql语句的实现:

  mysql--返回第N高的薪水(不存在返回null)_第2张图片

 

 

 

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

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

 

你可能感兴趣的:(mysql--返回第N高的薪水(不存在返回null))