Junior — Middle
Explique o que são Expressões de Tabela Comuns Recursivas (CTE) e como são usadas em consultas SQL
sobes.tech IA
Resposta da IA
Expressões de Tabela Comum Recursivas (CTE) são um tipo especial de conjuntos de resultados temporários em SQL, que podem referenciar a si mesmas para executar consultas recursivas. São úteis para trabalhar com estruturas de dados hierárquicas ou gráficas, por exemplo, para percorrer uma árvore de categorias, organizar funcionários por subordinação, etc.
Um CTE recursivo consiste em duas partes:
- Consulta base — conjunto inicial de linhas.
- Consulta recursiva — usa os resultados da iteração anterior para obter o próximo nível de dados.
Exemplo: obter todos os subordinados de um funcionário com id = 1 em uma hierarquia de funcionários.
WITH RECURSIVE Subordinates AS (
SELECT id, manager_id, name
FROM employees
WHERE id = 1 -- caso base
UNION ALL
SELECT e.id, e.manager_id, e.name
FROM employees e
INNER JOIN Subordinates s ON e.manager_id = s.id -- caso recursivo
)
SELECT * FROM Subordinates;
Esta consulta primeiro seleciona o funcionário com id=1, depois recursivamente adiciona todos os funcionários cujo manager_id corresponde ao id dos funcionários já encontrados, até percorrer toda a hierarquia.