zoukankan      html  css  js  c++  java
  • Leetcode SQL_#176_第二高的薪水

    Leetcode SQL_#176_第二高的薪水

    Contents

    题目


    解答

    select distinct Salary as SecondHighestSalary
    from Employee
    order by Salary desc
    limit 1 offset 1

    知识点:
    offset关键字,跳过排序当中的第一个,那么得到的就是第二大的数字

    问题:

    • 这里边几个关键字的顺序问题,比如as应该放在哪里?limit和offset有没有严格的先后顺序?
      * as要放在字段名称之后,from之前,因为我是重命名了一个字段
      * 实验证明,limit必须在前,offset在后,不然会报语法错误
    • 答案存在的漏洞:可能表中不同的工资只有1种,用了offset 1就是有问题的。

    使用临时表

    第二行括号里的select查询出来的结果就是一个临时表

    select 
    (select distinct Salary from Employee order by Salary desc limit 1 offset 1) 
    as SecondHighestSalary;

    使用ifnull()函数

    ifnull(A,B):判断A是否是null,如果是null会返回默认值B

    select
    ifnull((select distinct Salary from Employee order by Salary desc limit 1 offset 1),null)
    as SecondHighestSalary;

    注意:ifnull里边的第一项是一个select查询出来的临时表,需要加上括号

  • 相关阅读:
    word2vec
    视频推荐系统
    python基础
    go-elasticsearch
    Docker 部署 go项目
    gohbase
    禅道部署linux
    jmeter 报错 Error occurred during initialization of VM Could not reserve enough space for object heap
    jarvis OJ-DSA
    算法-我的第一本算法书(一)
  • 原文地址:https://www.cnblogs.com/Howfars/p/15430998.html
Copyright © 2011-2022 走看看