vlambda博客
学习文章列表

MySQL 8.0 公用表表达式(CTE)

从版本8.0开始,MySQL简单地引入了公用表表达式功能或CTE。

用于单词定义多次引用使用。


语法如下所示,其中需要注意的是

1. **定义后,必须下方接着使用,不然语法错误。**

2. 同一个语句可以定义多个CTE



with 别名 as (SQL语句),with 别名2 as (SQL语句)SELECT/DELETE/UPDATE/INSERT子句



例子:


with cte as (select * from t_window_func)select dept, count(*)from ctewhere salary not in (select salary from cte where salary < 13000)group by dept;


以上语句的外层`from cte`和内层`not in`中多次引用了`cte`这个”公用表“