通用表表达式查询

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

相关推荐
盒马coding31 分钟前
第19节-非规范化数据类型-Composite-types
数据库·postgresql
-雷阵雨-1 小时前
MySQL——桥梁JDBC
数据库·mysql·oracle
亿坊电商1 小时前
在PHP框架里如何进行数据库连接?
数据库·oracle·php
满昕欢喜1 小时前
SQL Server从入门到项目实践(超值版)读书笔记 28
数据库·sql·sqlserver
楚韵天工1 小时前
宠物服务平台(程序+文档)
java·网络·数据库·spring cloud·编辑器·intellij-idea·宠物
李白你好3 小时前
一款专业的多数据库安全评估工具,支持 **PostgreSQL、MySQL、Redis、MSSQL** 等多种数据库的后渗透操作
数据库·mysql·postgresql
恋红尘3 小时前
Mysql
数据库·mysql
paishishaba4 小时前
数据库设计原则
数据库
曹牧4 小时前
oracle:NOT IN
数据库·oracle
爬山算法5 小时前
Redis(66)Redis如何实现分布式锁?
数据库·redis·分布式