• sql语句快速复习


    两个表连接:inner join要两个都有,right outer join是要右边的表有这个数据(on后面的),left outer join是要左边的有这个数据,full outer join只要某一张有就可以

    leetcode 175

    无难度,连接俩表,要左边数据的都要 用left outer join

    select FirstName,LastName,City,State
    From Person left outer join Address
    on Person.PersonId=Address.PersonId
    View Code

     leetcode 176

    求第二高的薪水,注意理解题意:

    1、如果多个人工资一样,那么他们只占用一个位置,不是并列顺延这种。是单纯工资排序。比如五个人200 三个人100 四个人50,那么第二名是100,用distinct来实现

    2、排序类用lorder by,这是两个词,默认从低到高排序,使用desc改变时候,desc在最后。order by salary desc

    3、limit m offset n.从标号n开始(含n哦),一共显示m个。注意:标号是从0开始的哦,标号0才是表中第一行

    4、如果上面limit m offset n中没有符合的,显示的是空而不是null,如需显示null,要借助ifnull函数【sql里面查询没有符合条件的貌似都是默认空,连接里面的补充是补充null?】

    5、ifnull(a,b) 如果a是非空,结果就是a,如果a是空,结果是b

    6、修改名字/没名字的命名,就在某个东西后面直接写就行,比如 ifnull(a,b) name,那么name就是ifnull查出来的新名字。

    select ifnull((
        select distinct Salary
        from Employee
        order by Salary DESC
        Limit 1 Offset 1    
    ),null) SecondHighestSalary
    View Code

     leetcode 177

    求第n高,这个是以函数的形式传参的,几个注意事项

    1、offset后面不能跟公式N-1这种,只能是x,x在前面赋值。(limit和offset后面只能接受非负整数,或者单一变量哦)

    2、mysql里面的赋值语句SET X=N-1,这个后面有分号,不能写在return里面,按照传统语言的理解可以是:return后面是一个表达式(正常的select大句子),这个赋值是在主体中完成的。最后return全结束有一个分号

    3、limit x offset y等价于 limit y,x,跳过y行(从标号y开始取,实际整表从0标号),选x行

    两种limit对应题解

    CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
    BEGIN
        SET n=N-1;
      RETURN (
          # Write your MySQL query statement below.
          select ifnull((select distinct Salary
          from Employee
          order by Salary desc
          limit n,1),null) 
      );
    END
    View Code
    CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
    BEGIN
        SET n=N-1;
      RETURN (
          # Write your MySQL query statement below.
          select ifnull((select distinct Salary
          from Employee
          order by Salary desc
          limit 1 offset n),null) 
      );
    END
    View Code
    时间才能证明一切,选好了就尽力去做吧!
  • 相关阅读:
    解决Cannot delete or update a parent row: a foreign key constraint fails的mysql报错
    zabbix4.2绘制网络拓扑图-添加链路速率
    zabbix 添加宏变量
    238_Product of Array Except Self
    122_Best Time to Buy and Sell Stock II
    260_Single Number III
    C# 比较时间问题
    226_Invert Binary Tree
    100_Same Tree
    283_Move Zeroes
  • 原文地址:https://www.cnblogs.com/tingxilin/p/13174411.html
Copyright © 2020-2023  润新知