Welcome to Our Website

SQL Server CTE (Svenska)

sammanfattning: i den här handledningen kommer du att lära dig om det gemensamma tabelluttrycket eller CTE i SQL Server genom att använda WITH – klausulen.

introduktion till CTE i SQL Server

CTE står för common table expression. Med en CTE kan du definiera en tillfällig namngiven resultatuppsättning som är tillgänglig tillfälligt i exekveringsområdet för ett uttalande som SELECT, INSERT, UPDATE, DELETE eller MERGE.,

följande visar den gemensamma syntaxen för en CTE i SQL Server:

Code language: SQL (Structured Query Language) (sql)

i den här syntaxen:

  • ange först uttrycksnamnet (expression_name) som du senare kan referera till i en fråga.
  • ange sedan en lista med kommaseparerade kolumner efter expression_name. Antalet kolumner måste vara samma som antalet kolumner som definieras i CTE_definition.
  • använd sedan som nyckelord efter uttryckets namn eller kolumnlista om kolumnlistan anges.,
  • efter, definiera ettSELECT uttalande vars resultatuppsättning fyller det gemensamma tabelluttrycket.
  • se slutligen det vanliga tabelluttrycket i en fråga (SQL_statement) somSELECT,INSERT,UPDATE,DELETE, ellerMERGE.

vi föredrar att använda vanliga tabelluttryck i stället för att använda underqueries eftersom vanliga tabelluttryck är mer läsbara., Vi använder också CTE i de frågor som innehåller analytiska funktioner (eller fönsterfunktioner)

SQL Server CTE exempel

låt oss ta några exempel på att använda vanliga tabelluttryck.

A) exempel på enkel SQL Server CTE

den här frågan använder en CTE för att returnera försäljningsbeloppen av säljare 2018:

följande bild visar resultatuppsättningen:

i det här exemplet:

  • först definierade vi cte_sales_amounts som namnet på det gemensamma TABELLUTTRYCKET., CTE returnerar ett resultat som består av tre kolumner staff, year och sales som härrör från definitionsfrågan.
  • för det andra konstruerade vi en fråga som returnerar det totala försäljningsbeloppet av säljare och år genom att fråga data från tabellernaorders,order_items ochstaffs.
  • tredje hänvisade vi till CTE i den yttre frågan och väljer endast de rader vars år är 2018.,

noterade att detta exempel endast är för demonstrationssyftet för att hjälpa dig att gradvis förstå hur vanliga tabelluttryck fungerar. Det finns ett mer optimalt sätt att uppnå resultatet utan att använda CTE.

B) använda ett vanligt tabelluttryck för att göra rapportgenomsnitt baserat på antal

det här exemplet använder CTE för att returnera det genomsnittliga antalet försäljningsorder 2018 för alla säljare.

här är utgången:

Code language: SQL (Structured Query Language) (sql)

i det här exemplet:

först använde vi cte_sales som namnet på det gemensamma tabelluttrycket., Vi hoppade över kolumnlistan för CTE så det härleds från CTE-definitionsdeklarationen. I det här exemplet innehåller staff_id och order_count kolumner.

För det andra använder vi följande Fråga för att definiera resultatuppsättningen som fyller det gemensamma tabelluttrycket cte_sales. Frågan returnerar antalet beställningar i 2018 av säljare.

För det tredje hänvisar vi till funktionencte_sales I det yttre uttalandet och använder funktionenAVG() för att få den genomsnittliga försäljningsordern av alla staber.,

Code language: SQL (Structured Query Language) (sql)

C) använda flera SQL Server CTE i en enda fråga exempel

följande exempel använder två CTEcte_category_counts ochcte_category_sales för att returnera antalet produkter och försäljning för varje produktkategori. Den yttre frågan förenar två CTEs med kolumnencategory_id.,

här är resultatuppsättningen:

i den här handledningen har du lärt dig hur du använder vanliga tabelluttryck eller CTE i SQL Server för att konstruera komplexa frågor på ett lättförståeligt sätt.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *