1.方法:
1.1普通变量创建
with 表名(列名) as(select 内容)
语义:创建一张表 列名和内容11对应
和临时表的区别,这个类似变量,变量和常量的区别
后面可以影响前面:
1.2循环变量创建
员工分管层级:
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