美文网首页
SQL进阶教程之1.2自连接

SQL进阶教程之1.2自连接

作者: anti酱 | 来源:发表于2021-11-30 17:36 被阅读0次

自连接用法

  • 排列组合(重复排列/不重复排列/组合)
  • 删除重复项
  • 查找局部不一致的列
  • 排序

用法1:可重排列
应用场景:把所有可能出现的组合全部罗列一遍
案例:求出products中name列的所有排列结果

原始表products 使用cross join得到所有排列结果

用法2:case when 行转列
应用场景:需要把原数据的行变成列,列变成行
案例:把所有男性/女性分别汇总成一列

原始表poptbl_sex 原有的男性/女性分别汇总为一列

用法3:update 同步更新
应用场景:由于update会在更新结果上继续更新,因此单独更新会出现错误,此时需要用到case when 同时更新
案例:薪资>300000 薪资变为9成,薪资大于250000,小于280000薪资变为1.2倍数

原始表salary case when 划分情况实现了同时更新

用法4:case when +子查询
应用场景:需要查询的信息同时与两个表有关系
案例:查询各课程及月份,有该课程打圈,没有打叉

原始表coursemaster 原始表opencourses case when作为判断,当满足相应id在某范围内则打勾,否则打叉

用法5:case when 聚合函数
应用场景:需要使用多种聚合函数,当满足相应情况聚合相应结果
案例:求各学生主要社团id,如果只有一个社团则该是该社团id,若多个社团,按照flag判断

原始表studentclub 满足count(*)=1则为club_id,否则找flag为Y的作为社团id

相关文章

  • SQL进阶教程之1.2自连接

    自连接用法 排列组合(重复排列/不重复排列/组合) 删除重复项 查找局部不一致的列 排序 用法1:可重排列应用场景...

  • MICK-SQL进阶教程 1.2 自连接的用法

    针对相同的表进行的连接被称为“自连接”(self join)。一旦熟练掌握自连接技术, 我们便能快速地解决很多问题...

  • MICK-SQL进阶教程

    学习笔记~ 目录 第一章 神奇的SQL 1.1 CASE表达式1.2 自连接的用法1.3 三值逻辑和NULL1.4...

  • Java进阶-MySQL-基础

    一、Java进阶-MySQL-基础 1.1 客户端连接 1.2 字符集和比较规则 SHOW CHARSET; /...

  • sql自链接的理解

    如何理解SQL中的自连接? - 知乎

  • sql之自连接

    题目:查找当前薪水(to_date='9999-01-01')排名第n多的员工编号emp_no、薪水salary、...

  • 六、SQL–表连接⑤(自连接)

    自连接:参与连接的表为同一张表,即与自身连接。交叉连接、内连接、外连接等连接方式中只要参与连接的表是同一张表,那么...

  • SQL进阶教程之1.12 sql编程方法

    本节主要介绍了统一的编程标准,以优化代码,增加可读性。 表的设计 列、表、索引绝对不要使用如A/AA/a123这样...

  • SQL进阶教程之1.8谓词

    谓词 是一种特殊函数,返回布尔值true/false/ 分为全称量词和存在量词全称量词:所有x都满足条件P存在量词...

  • 0.SQL编程之目录

    SQL编程之前言为什么我选择分享SQL编程SQL编程的基础概念 SQL编程之MySQL 自定义函数 Hello w...

网友评论

      本文标题:SQL进阶教程之1.2自连接

      本文链接:https://www.haomeiwen.com/subject/veowoltx.html