通用表表达式查询

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

相关推荐
angushine7 分钟前
Windows版本PostgreSQL定时备份
数据库·windows·postgresql
roman_日积跬步-终至千里8 分钟前
【系统架构设计(38)】数据库规范化理论
数据库·系统架构
YDS82922 分钟前
MYSQL —— 约束和多表查询
数据库·mysql
The star"'27 分钟前
MariaDB数据库管理
数据库·mariadb
无名指的等待7121 小时前
Redisson的Lock和TryLock的区别
java·开发语言·数据库
码农学院2 小时前
Excel批量导入到数据库的方法
数据库·oracle·excel
曾经的三心草2 小时前
实验指导-基于阿里云函数计算的简单邮件发送服务 之数据库访问中间件
数据库·阿里云·中间件
RestCloud2 小时前
MongoDB到关系型数据库:JSON字段如何高效转换?
数据库·mysql·mongodb
洲覆2 小时前
Redis 64字节分界线与跳表实现原理
数据结构·数据库·redis·缓存
失因2 小时前
Nginx 特性、配置与实战部署
运维·数据库·nginx