Resumo: neste tutorial, você irá aprender sobre a expressão comum da tabela ou CTE no servidor SQL usando a cláusula WITH
.
Introdução ao CTE no servidor SQL
CTE significa expressão de tabela comum. Uma CTE permite que você defina um conjunto de resultados nomeado temporário disponível temporariamente no escopo de execução de uma instrução, como SELECT
INSERT
UPDATE
DELETE
, ou MERGE
.,
A seguir mostra a sintaxe comum de uma CTE no SQL Server:
Code language: SQL (Structured Query Language) (sql)
nesta sintaxe:
- Primeiro, especifique o nome de expressão (
expression_name
) para o qual você pode se referir mais tarde, em uma consulta. - seguinte, indique uma lista de colunas separadas por vírgulas após o nome expression_. O número de colunas deve ser o mesmo que o número de colunas definido no
CTE_definition
. - então, use a palavra-chave como a seguir à expressão nome ou lista de colunas se a lista de colunas for indicada.,
- depois, defina uma declaração
SELECT
cujo conjunto de resultados popula a expressão da tabela comum. - por último, referem-se à expressão de tabela comum em uma consulta (
SQL_statement
) comoSELECT
INSERT
UPDATE
DELETE
, ouMERGE
.
preferimos usar expressões de tabela comuns em vez de usar subqueries porque as expressões de tabela comuns são mais legíveis., Nós também usamos CTE nas consultas que contêm funções analíticas (ou funções de janela)
SQL Server CTE exemplos
vamos tomar alguns exemplos de usar expressões de tabela comuns.
A) A Simples SQL Server CTE exemplo
Esta consulta utiliza uma CTE para retornar os valores de vendas por equipes de vendas em 2018:
a imagem A seguir mostra o conjunto de resultados:
neste exemplo:
- Primeiro, definimos
cte_sales_amounts
como o nome da expressão de tabela comum., o CTE retorna um resultado que consiste de três colunasstaff
year
esales
derivada a partir da definição de consulta. - econd, we constructed a query that returns the total sales amount by sales staff and year by querying data from the
orders
,order_items
andstaffs
tables. - Em Terceiro Lugar, referimo-nos ao CTE na consulta externa e selecionamos apenas as linhas cujo ano é 2018.,
observou que este exemplo é apenas para o propósito de demonstração para ajudá-lo a entender gradualmente como as expressões de tabela comuns funcionam. Há uma maneira mais ideal de alcançar o resultado sem usar o CTE.
B) usando uma expressão de tabela comum para fazer relatórios médias baseadas em contagens
Este exemplo usa o CTE para devolver o número médio de ordens de venda em 2018 para todos os quadros de vendas.
Aqui está o resultado:
Code language: SQL (Structured Query Language) (sql)
neste exemplo:
Primeiro, usamos cte_sales
como o nome da expressão de tabela comum., Saltamos a lista de colunas do CTE para que seja derivada da definição do CTE. Neste exemplo, inclui staff_id
e order_count
colunas.
Em segundo lugar, usamos a seguinte consulta para definir o conjunto de resultados que popula a expressão comum da tabela cte_sales
. A consulta retorna o número de encomendas em 2018 pela equipe de vendas.em terceiro lugar, referimo-nos à função
na declaração externa e usamos a função
para obter a ordem de venda média por todos os funcionários.,
Code language: SQL (Structured Query Language) (sql)
C) Usando várias SQL Server CTE em uma única consulta de exemplo
O exemplo a seguir usa dois CTE cte_category_counts
e cte_category_sales
para retornar o número de produtos e vendas para cada categoria de produto. The outer query joins two CTEs using the category_id
column.,
Aqui é o conjunto de resultado:
neste tutorial, você aprendeu como usar expressões de tabela comuns ou CTE no SQL Server para a construção de consultas complexas em um fácil de entender maneira.