CTE or WITH

WITH语句通常被称为通用表表达式(Common Table Expressions)或者CTEs。

WITH语句作为一个辅助语句依附于主语句,WITH语句和主语句都可以是SELECT,INSERT,UPDATE,DELETE中的任何一种语句。

  • A special type of subquery that is declared ahead of your main query.(在主查询之前声明。)
  • Named and referenced later in FROM statement.(在FROM语句中按名称引用它,就像它是数据库中的任何其他表一样。)

创建CTE的语法

WITH cte_name AS(CTE_query_definition)注:可以同时定义1个或多个cte,做法是用逗号','隔开,最后一个cte后不跟','。
WITH cte_name1 AS(CTE_query_definition),
cte_name2 AS(CTE_query_definition)...Main query

示例

左图中的例子,在inner join中使用子查询s;右侧将s作为CTE定义在主查询之前,之后可以像使用其他表一样,直接引用s。

多个CTE

Why use CTEs / CTE优点

  • Exceted once (仅执行一次,然后存储在内存中,可以提高执行效率)

    • CTE is then stored in memory
    • Improves query performance
  • Improving organization of long & complex queries(提升复杂查询的可阅读性、可维护性)
  • Referencing other CTEs(可引用其他的CTE)
  • Referencing itself ( SELF JOIN) (可自引用)

你的点赞是我持续更新的动力~ 谢谢 Thanks♪(・ω・)ノ

其他SQL学习笔记 友情链接:

JessieY:SQL学习笔记 - 窗口函数OVER​zhuanlan.zhihu.com

JessieY:SQL学习笔记 - CASE WHEN THEN​zhuanlan.zhihu.com

JessieY:SQL学习笔记 - GROUP BY / JOIN / UNION​zhuanlan.zhihu.com

sql语句多个表补齐四位_SQL学习笔记 - CTE通用表表达式和WITH用法相关推荐

  1. Oracle中用system存数据,【学习笔记】Oracle表空间 数据存放system表空间影响数据库性能...

    天萃荷净 分享一篇,关于Oracle数据库system表空间研究,不能将用户数据存放在system表空间的原因 为什么不建议客户把业务数据存放到SYSTEM表空间中,一直想通过试验的数据来说明问题,今 ...

  2. 在php中表单传值怎么用,PHP学习笔记 01 之表单传值

    一.HTML传值/PHP接收方法 1.GET(地址栏+问号+数据信息) (1)方式一:表单Form: method = 'get' GET接收数据方式: $_GET['表单元素name对应的值] (2 ...

  3. HTML/CSS学习笔记02【表单标签】

    w3cschool菜鸟教程.CHM(腾讯微云):https://share.weiyun.com/c1FaX6ZD HTML/CSS学习笔记01[概念介绍.基本标签.表单标签][day01] HTML ...

  4. HALCON 20.11:深度学习笔记(7)---术语表

    HALCON 20.11:深度学习笔记(7)---术语表 HALCON 20.11.0.0中,实现了深度学习方法.下面,我们将描述深度学习环境中使用的最重要的术语: anchor (锚) Anchor ...

  5. 陈表达VBA学习笔记-新建工作表鼠标右键菜单按钮

    陈表达VBA学习笔记-新建工作表鼠标右键菜单按钮:新建一个我的菜单按钮 设置对应的宏过程名称为 [我的菜单宏] 点击按钮弹窗信息,信息可自定义设置 详细代码如下: Sub 新建右键菜单()Dim 菜单 ...

  6. 编译原理学习笔记20——符号表

    编译原理学习笔记20--符号表 20.1 符号表的组织与操作 20.2 符号表的内容 20.3 利用符号表分析名字的作用域 20.1 符号表的组织与操作 符号表 符号表的作用与组织 符号表的整理和查找 ...

  7. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·005【表的CRUD操作(DML语句)】

    文章目录 一.表的CRUD操作(DML语句) 1.insert语句 2.update语句 3.delete语句 二.其他注意点 1.MySQL查询区分大小写的方式 2.truncate语句与delet ...

  8. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·003【表的约束、表的CRUD操作(DDL语句)】

    文章目录 一.表的约束 1.约束类型 2.添加约束 二.表的CRUD操作(DDL语句) 1.C(Create):创建 2.R(Retrieve):查询 3.U(Update):更新 4.D(Delet ...

  9. SQL语句(二)创建带主键和约束的数据表

    内容摘要 创建带主键和约束的表 创建带组合主键和外键的表 1. 创建带主键和约束的表 Student (学生表) CREATE TABLE Student ( sclass varchar(10) N ...

最新文章

  1. 如果说一个地图是1000*1000那么需要多少内存呢?
  2. mysql bingip,MySQL报错Ignoring query to other database的真正原因
  3. Java8 LocalDateTime获取时间戳(毫秒/秒)、LocalDateTime与String互转、Date与LocalDateTime互转
  4. Yii的Where条件
  5. 为什么又要造一个叫 Latke 的轮子
  6. 阿里云mysql服务器太贵_阿里云数据库,跟自己在服务器安装的有什么区别?有人说安装很简单,那为什么要花钱买?...
  7. 工控系统安全测试平台及攻防验证【会议】
  8. Redis:Big Key问题
  9. 【Flink】Flink netty 通讯 PartitionRequestClient NettyPartitionRequestClient
  10. django-分组聚合查询
  11. Cmake之基本语法
  12. Linux signal 那些事儿 (3)
  13. Proteus中8259的仿真[无dos,纯手工]
  14. android测试tf卡读写速度,高速TF卡 , 闪迪还是三星?读写速度对比以及上当经历...
  15. 第二章 原理图绘制与检查
  16. 玩转HANA数据库的备份与恢复(2020 刘欣)
  17. html5 indexeddb 排序,HTML5 进阶系列:indexedDB 数据库
  18. 那些年啊,那些事——一个程序员的奋斗史 ——56
  19. 计算广告发展历程:从CPC到oCPX
  20. outlook的archive pst丢失后

热门文章

  1. 用代码创建工程并添加内容
  2. c++学习笔记之类的应用
  3. 系统安装重装与优化:chapter6:使用常用软件与电脑外设
  4. Linux下远程连接断开后如何让程序继续运行
  5. Resnet的pytorch官方实现代码解读
  6. php运行速度检测软件,PHP执行慢分析工具xdebug + webgrind
  7. 回馈读者:赠花书一本!
  8. 命令行设置dns_网络感叹号dns未响应
  9. 原声php 读取excel乱码_使用PHPExcel读取Excel文件时会读出乱码
  10. 读《李商隐诗集》有感