Welcome to Our Website

SQL Server CTE (Dansk)

Resumé: i denne tutorial vil du lære om de fælles tabel udtryk eller CTE i SQL Server ved hjælp af WITH klausul.

Introduktion til CTE i S .l Server

CTE står for common table e .pression. En CTE giver dig mulighed for at definere et midlertidigt navngivet resultatet, at ledige midlertidigt i udførelsen omfattet af en erklæring, som f.eks. SELECT INSERT UPDATE DELETE, eller MERGE.,

i Det følgende vises en fælles syntaks af en CTE i SQL-Server:

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

I denne syntaks:

  • Første, skal du angive udtrykket navn (expression_name), som du kan se senere i en forespørgsel.
  • angiv derefter en liste over kommaseparerede kolonner efter udtryksnavnet. Antallet af kolonner skal være det samme som antallet af kolonner defineret i CTE_definition.
  • brug derefter nøgleordet som efter udtrykket navn eller kolonneliste, hvis kolonnelisten er angivet.,
  • Definer derefter enSELECT erklæring, hvis resultatsæt udfylder det fælles tabeludtryk.
  • Endelig henvise til det fælles bord udtryk i en forespørgsel (SQL_statement), f.eks. SELECT INSERT UPDATE DELETE, eller MERGE.

Vi foretrækker at bruge almindelige tabeludtryk frem for at bruge underforespørgsler, fordi almindelige tabeludtryk er mere læsbare., Vi bruger også CTE i forespørgsler, der indeholder analytiske funktioner (eller vinduesfunktioner)

s .l Server CTE eksempler

lad os tage nogle eksempler på at bruge almindelige tabeludtryk.

A) Simpel SQL Server CTE eksempel

Denne forespørgsel bruger en CTE til at returnere afståelsessummer ved salg stabe i 2018:

følgende billede viser resultatet, der er:

I dette eksempel:

  • Første, vi definerede cte_sales_amounts som navnet på den fælles tabel udtryk., CTE returnerer et resultat, at der består af tre kolonner staff year og sales, der stammer fra den definition forespørgsel.
  • Andet, vi konstrueret en forespørgsel, der returnerer den samlede solgte mængde af salgspersonale og år ved at forespørge data fra orders order_items og staffs tabeller.
  • for det tredje henviste vi til CTE i den ydre forespørgsel og valgte kun de rækker, hvis år er 2018.,

bemærkede, at dette eksempel udelukkende er til demonstrationsformålet for at hjælpe dig med gradvist at forstå, hvordan almindelige bordudtryk fungerer. Der er en mere optimal måde at opnå resultatet på uden at bruge CTE.

B) brug af et fælles tabeludtryk til at lave rapportgennemsnit baseret på tællinger

dette eksempel bruger CTE til at returnere det gennemsnitlige antal salgsordrer i 2018 for alle salgspersonale.

Her er output:

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

I dette eksempel:

for det Første, vi brugte cte_sales som navnet på den fælles tabel udtryk., Vi sprang over kolonnelisten over CTE, så den er afledt af CTE-definitionserklæringen. I dette eksempel inkluderer det staff_id og order_count kolonner.

for det andet bruger vi følgende forespørgsel til at definere det resultatsæt, der udfylder det fælles tabeludtryk cte_sales. Forespørgslen returnerer antallet af ordrer i 2018 af salgspersonale.

for det tredje henviser vi til cte_sales i den ydre erklæring og bruger AVG() funktionen for at få den gennemsnitlige salgsordre af alle medarbejdere.,

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

C) ved Hjælp af flere SQL Server CTE i en enkelt forespørgsel eksempel

Det følgende eksempel bruger to CTE cte_category_counts og cte_category_sales for at returnere antallet af produkter og salg for hver produktkategori. Den ydre forespørgsel forbinder to CTE ‘ er ved hjælp af kolonnen category_id.,

Her er resultatet:

I denne tutorial, du har lært at bruge det fælles bord udtryk eller CTE i SQL Server til at konstruere komplekse forespørgsler i en let at forstå måde.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *