• leetcode刷题笔记一百七十五题 && 一百七十六题 && 一百七十七题


    leetcode刷题笔记一百七十五题 && 一百七十六题 && 一百七十七题

    源地址:

    175. 组合两个表

    176. 第二高的薪水

    177. 第N高的薪水

    175问题描述:

    表1: Person

    +-------------+---------+
    | 列名 | 类型 |
    +-------------+---------+
    | PersonId | int |
    | FirstName | varchar |
    | LastName | varchar |
    +-------------+---------+
    PersonId 是上表主键
    表2: Address

    +-------------+---------+
    | 列名 | 类型 |
    +-------------+---------+
    | AddressId | int |
    | PersonId | int |
    | City | varchar |
    | State | varchar |
    +-------------+---------+
    AddressId 是上表主键

    编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:

    FirstName, LastName, City, State

    # Write your MySQL query statement below
    SELECT Person.FirstName, Person.LastName, Address.City, Address.State From Person Left Join Address On Person.PersonId = Address.PersonId;
    

    176问题描述:

    编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。

    +----+--------+
    | Id | Salary |
    +----+--------+
    | 1 | 100 |
    | 2 | 200 |
    | 3 | 300 |
    +----+--------+
    例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。

    +---------------------+
    | SecondHighestSalary |
    +---------------------+
    | 200 |
    +---------------------+

    # Write your MySQL query statement below
    SELECT IFNULL(
        (SELECT DISTINCT Employee.salary FROM Employee ORDER BY salary DESC LIMIT 1 OFFSET 1), NULL
    ) AS  SecondHighestSalary;
    
    #备注:
    #IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。
    #IFNULL() 函数语法格式为:
    #IFNULL(expression, alt_value)
    

    177问题描述:

    编写一个 SQL 查询,获取 Employee 表中第 n 高的薪水(Salary)。

    +----+--------+
    | Id | Salary |
    +----+--------+
    | 1 | 100 |
    | 2 | 200 |
    | 3 | 300 |
    +----+--------+
    例如上述 Employee 表,n = 2 时,应返回第二高的薪水 200。如果不存在第 n 高的薪水,那么查询应返回 null。

    +------------------------+
    | getNthHighestSalary(2) |
    +------------------------+
    | 200 |
    +------------------------+

    CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
    BEGIN
      SET n = N - 1;
      RETURN (
        SELECT IFNULL(
        	(SELECT DISTINCT Employee.Salary FROM Employee ORDER BY Salary DESC LIMIT 1 OFFSET n), NULL 
        )
      );
    END
    
  • 相关阅读:
    事务
    Spring核心之IOC&反射
    jquery中的$().each,$.each的区别
    [转载]tail No space left on device
    nginx apache负载均衡测试
    阿里云配置nginx+php+mysql
    nginx xxx.conf
    [转载]How To Install Nginx And PHP-FPM On CentOS 6 Via Yum
    安装memcached
    安装配置nfs
  • 原文地址:https://www.cnblogs.com/ganshuoos/p/13644416.html
Copyright © 2020-2023  润新知