通用表表达式查询

1.方法:

1.1普通变量创建

with 表名(列名) as(select 内容)

语义:创建一张表 列名和内容11对应

和临时表的区别,这个类似变量,变量和常量的区别

后面可以影响前面:

1.2循环变量创建

员工分管层级:

sql 复制代码
with recursive emp_path(emp_id,emp_name,path) as (
	select employee_id,first_name||last_name,first_name||','||last_name
	from employees
	where manager_id is NULL
	
	UNION ALL
	SELECT employee_id, first_name||','||last_name, path||'->'||first_name||','||last_name
	FROM employees e
	JOIN emp_path p 
	ON (e.manager_id = p.emp_id)
)

select * 
from emp_path 

2.替代传统join写法

3.好处

使用CTE的主要好处包括:提高复杂查询的可读性。CTE可以将复杂查询模块化,组织成容易理解的结构。支持递归查询。CTE通过引用自身实现递归,可以方便地处理层次结构数据和图数据。sm

相关推荐
XiaoLeisj28 分钟前
【MyBatis】深入解析 MyBatis XML 开发:增删改查操作和方法命名规范、@Param 重命名参数、XML 返回自增主键方法
xml·java·数据库·spring boot·sql·intellij-idea·mybatis
dleei1 小时前
MySql安装及SQL语句
数据库·后端·mysql
信徒_2 小时前
Mysql 在什么样的情况下会产生死锁?
android·数据库·mysql
嘴对嘴编程3 小时前
oracle数据泵操作
数据库·oracle
·薯条大王9 小时前
MySQL联合查询
数据库·mysql
morris13110 小时前
【redis】redis实现分布式锁
数据库·redis·缓存·分布式锁
hycccccch11 小时前
Canal+RabbitMQ实现MySQL数据增量同步
java·数据库·后端·rabbitmq
这个懒人12 小时前
深入解析Translog机制:Elasticsearch的数据守护者
数据库·elasticsearch·nosql·translog
Yan-英杰12 小时前
【百日精通JAVA | SQL篇 | 第二篇】数据库操作
服务器·数据库·sql
NineData12 小时前
NineData云原生智能数据管理平台新功能发布|2025年3月版
数据库