Expressão de Tabela Comum (CTE) – Expressão de Tabela Comum no SQL Server
- 12-09-2022
- Toanngo92
- 0 Comments
Expressão de Tabela Comum (CTE) – Expressões de Tabela Comum
Um CTE pode ser entendido como um conjunto de resultados temporário definido dentro do escopo de uma única instrução SELECT, INSERT, UPDATE, DELETE ou CREATE VIEW. CTE Um CTE é uma expressão nomeada definida em uma consulta. O CTE é definido no início da consulta e pode ser referenciado várias vezes na consulta externa.
Um CTE que inclui referências a si mesmo é chamado de CTE recursivo.
A força do CTE é desenvolver a capacidade de ler comandos e manter facilmente um comando complexo.
Sintaxe:
WITH <CTE_Name> AS (<CTE_definition>)
Por exemplo, para obter e exibir o cliente anual para os pedidos contidos na tabela Sales.SalesOrderHeader :
WITH CTE_OrderYear AS (SELECT YEAR(OrderDAte) AS OrderYear,CustomerID FROM Sales.SalesOrderHeader) SELECT OrderYear, COUNT(DISTINCT CustomerID) AS CustomerCount FROM CTE OrderYear GROUP BY OrderYear;
No exemplo acima, CTE_OrderYear é especificado como o nome do CTE. A palavra-chave WITH … AS começa a definir um CTE, então o CTE é usado na instrução SELECT para recuperar e exibir todo o resultado.
Vários CTEs podem ser definidos juntos na cláusula WITH . Por exemplo:
WITH CTE_Students AS ( SELECT S.StudentCode, S.Name, C.CityName, St.Status FROM Student S) INNER JOIN City C ON S.CityCode = C.CityCode INNER JOIN Status St ON S.StatusId = St.StatusID), StatusRecord AS ( SELECT Status, COUNT(Name) AS CountofStudents FROM CTE_Students GROUP BY Status ) SELECT * FROM StatusRecord