CTEs (Common Table Expressions)
- Amanda Nascimento
- 2 de jun.
- 1 min de leitura
As CTEs (Expressões de Tabela Comuns) são uma ferramenta poderosa no SQL Server para tornar suas consultas mais organizadas, legíveis e reutilizáveis. Elas funcionam como tabelas temporárias definidas dentro de uma única instrução SQL.
Uma CTE é uma expressão que você define com a palavra-chave WITH, como se estivesse criando uma "subconsulta nomeada". Ela existe apenas durante a execução da instrução SQL que a utiliza.
WITH CTE_ClientesSP AS (
SELECT Nome, Cidade
FROM Clientes
WHERE Estado = 'SP'
)
SELECT * FROM CTE_ClientesSP;
📌 Características:
Existe apenas durante a execução da consulta.
Não ocupa espaço no tempdb diretamente.
Não pode ser indexada.
Ideal para clareza e reutilização dentro da mesma query.
CTE Recursiva (para hierarquias)
Muito útil para trabalhar com estruturas hierárquicas como organogramas, categorias, diretórios etc.
-- Exemplo: estrutura de gerência
WITH Hierarquia AS (
SELECT id, nome, gerente_id
FROM funcionarios
WHERE gerente_id IS NULL
UNION ALL
FROM funcionarios f
)
SELECT *
FROM Hierarquia;