sql case when then else多个条件_SQL-多表查询
一、表的加法
union:将多个表的数据记录按行合并在一起(即多个表的并集),同时返回的结果会删除重复行,重复的记录只保留一行。如果需要保留重复行,可以使用union all
二、表的联结
1.交叉联结(cross join)
也叫笛卡儿积,指将表中的每一行和另外一个表的每一行合并在一起,返回的结果的行数等于两个表的行数的乘积,交叉联结是所有联结的基础。
2.内联结(inner join)
指查找同时存在于两张表的数据,即两个表的交集
3.左联结(left join)
指将左侧的表中的数据全部取出
4.右联结(right join)
指将右侧的表中的数据全部取出
5.全联结(full join)
指返回的是左表和右表中的所有行,如果没有匹配的行则会显示空值,MySQL不支持全联结
6.选择联结的方法
根据想要保留哪一部分数据来选择用哪一种联结,当需要生成固定行数的表单或者需要指定取出哪一张表中的全部数据的时候,使用left join或right join,其他情况则用inner join,另外,联结不会影响SQL运行顺序。
三、联结的应用案例
练习:
四、case表达式
1.case表达式用于多种情况的条件判断
case when 判断表达式 then 表达式when 判断表达式 then 表达式...else 表达式
end
when子句的判断表达式用于判断某一行数据是否符合某个条件,若符合则返回then子句的表达式,若不符合则继续执行下一个when子句,如果所有的when子句都不符合,则返回else子句的表达式。
2.注意事项
①else子句可以省略不写,默认为else null,但不建议省略
②end不能省略
③case表达式可以书写在任意子句中
练习:
Group by 分组时,当用多个列来分组时,这几个列的值要全部相同才算一组,例如以上的课程号和课程名称要一一对应。
五、SQLzoo练习题
sql case when then else多个条件_SQL-多表查询相关推荐
- 数据导入导出 、 表记录基本操作 、 查询及匹配条件 、 多表查询 、
数据管理:(管理表记录) 数据导入:把系统文件的内容存储到数据库的表里. mysql> create table uesr( -> name varchar(50), -> mima ...
- 2.4.3 Mybatis 高级查询, 复杂映射, 返回主键, 动态SQL if, set, foreach, 核心配置文件深入,plugins标签, 多表查询, 嵌套查询
目录 Mybatis 复杂映射&配置文件深入 一 Mybatis高级查询 1.1 ResutlMap属性 1.2 多条件查询(三种) 1.3 模糊查询 二 Mybatis映射文件深入 2.1 ...
- case when then else多个条件_SQL巡礼之CASE用法
使用CASE表达式使SQL语句的条件判断形式变得十分丰富,也因为CASE表达式不依赖于具体的数据库技术,所以它的可移植性也会更高. 现在就让我们一起来领略一下CASE语句的用法吧. CASE表达式语法 ...
- 一条sql语句统计一个字段的不同条件, 无需过多子查询
- sql 相加_SQL多表查询
一.表的加法 相加就是用union把两个select语句相加,会去重:如果需要保留重复的行,用union all就可以了 二.表的联结 联结的几种类型: 1.交叉联结 2.内联结 3.左联结 4.右联 ...
- sql join on 多表连接_SQL 多表查询-交叉连接(笛卡尔积)
交叉连接(笛卡尔积)返回被连接的两个表所有数据行的笛卡尔积,返回结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数. 简单解释一下笛卡尔积 设A,B为集合,用 ...
- JPA 多条件、多表查询
JPA对于简单的查询操作确实很给力,但是涉及到多表.多条件.分页的场景就不是很好实现了. 可行的解决方案 1.多条件 public interface BaseRepository<T,ID e ...
- mysql子查询作为条件_sql - 使用子查询作为条件的MySQL DELETE FROM
sql - 使用子查询作为条件的MySQL DELETE FROM 我正在尝试这样的查询: DELETE FROM term_hierarchy AS th WHERE th.parent = 101 ...
- SQL CASE When THEN END 行列转换,复杂查询
使用 CASE CASE 函数是特殊的 Transact-SQL 表达式,它允许按列值显式可选值.数据中的更改是临时的,没有对数据进行永久更改.例如,CASE 函数可以在 state 列中有 CA 值 ...
最新文章
- proshow_ARTSLINK零创|巴特莱特B-Pro Show:建筑让我自由
- python主要用途-Python能用来做什么?以下是Python的三大主要用途
- C语言——日常刷题(一)
- linux下mysql服务架设_linux下源码搭建php环境之mysql(一)
- php 商品显示,php – WooCommerce仅显示购买的商品
- 快速排序+统计→奶牛的耳语(洛谷P1296题题解,Java语言描述)
- 负数乘以正数溢出问题
- Python类属性访问的魔法方法
- hint oracle qbname_从才oracle中找到所有列名为BANK_ACC,且BANK_ACC=000的项,并将BANK_ACC=000000的项修改为BANK_ACC=111...
- erlang注意(经典)
- 查看Linux下端口被哪个程序占用
- php 7 中对数值 * 100 出现很多小数_PHP快速入门第二讲:数据类型
- 在zephyr上使用mipi-sys-t
- 汇编跳转指令(转载)
- 好程序员Java教程分享使用HttpClient抓取页面内容
- Jaas demo 登陆验证
- linux内核移植imx8,iMX8模块Ubuntu移植
- 花呗的24期利息计算器_花呗分期利息怎么算(附计算公式大全)
- IGCT器件是什么?
- Could not transfer artifact问题