SQL Server SAG opgørelse svarer til IF-THEN-sætning i Excel.
SAGSSÆTNINGEN bruges til at implementere logikken, hvor du vil indstille værdien af en kolonne afhængigt af værdierne i andre kolonner.
s .l Server CASE-sætningen består af mindst et par hvornår og derefter udsagn. Hvornår-erklæringen angiver den betingelse, der skal testes. Derefter angiver sætningen handlingen, hvis tilstanden hvornår Returnerer SAND.,
ELSE-sætningen er valgfri og udføres, når ingen af betingelserne, når de vender tilbage, er sande. SAGSANGIVELSEN slutter med et slutord.
i denne artikel vil vi se på en række forskellige eksempler på SAGSANGIVELSEN. Men før vi gør det, vi vil skabe nogle dummy data til at arbejde med.,/td>
scriptet ovenfor, har skabt en dummy-database kaldet ShowRoom med et Bord i det såkaldte Biler., Bilbordet har syv kolonner: id, navn, firma, strøm, farve, model og tilstand.
lad os nu indsætte nogle dummy data i Cars bordet., Udfør følgende script:
Lad os se, hvordan vores datasæt ser ud, kan du udføre følgende script:
1
|
VÆLG * FRA Biler
|
output ser ud som dette:
Du kan se, at betingelsen kolonne indeholder et X i hver række i øjeblikket., Vi indstiller værdien af tilstandskolonnen, afhængigt af modelkolonnen, ved hjælp af SAGSANGIVELSEN, så du tydeligt kan se, hvad der foregår.,
The syntax of the CASE statement is pretty straight forward:
1
2
3
4
5
|
SELECT column1,
column2,
CASE WHEN CONDITION THEN ‘Value1’
ELSE ‘Value2’ END AS columnX
FROM Cars
|
The CASE statement has to be included inside the SELECT Statement., Det starter med sagen søgeord efterfulgt af WHENHEN søgeord og derefter betingelsen.
betingelsen kan være ethvert gyldigt s .l Server-udtryk, der returnerer en boolsk værdi. For eksempel kan betingelsen være model > 2000, den daværende klausul bruges efter betingelsen. Hvis betingelsen returnerer true den værdi, der følger derefter klausul gemmes i column.. Else, værdien efter ELSE-klausulen, gemmes også i column.. S .l Server CASE-erklæringen slutter med SLUTKLAUSULEN.,
eksempler på SAGSANGIVELSE
lad os nu se SAGSANGIVELSEN i aktion.
i et tidligere afsnit oprettede vi en tabel med navnet Cars inde i Sho .room-databasen.
kolonnen tilstand havde værdien.for alle rækker. Vi bruger S .l Server CASE-sætningen til at indstille værdien af tilstandskolonnen til “ny”, hvis modelkolonnen har en værdi større end 2000, ellers indstilles værdien for tilstandskolonnen til “gammel”.,ok at the following script:
1
2
3
4
5
|
SELECT name,
model,
CASE WHEN model > 2000 THEN ‘New’
ELSE ‘Old’ END AS condition
FROM Cars
|
The above script displays the name, model and condition columns from the Cars table., Udgangen af scriptet ovenfor ser sådan ud:
Du kan se, at værdien af.i tilstandskolonnen er blevet erstattet af “ny” og “gammel” afhængigt af bilens model.
flere betingelser i SAGSOPGØRELSE
Du kan evaluere flere betingelser i SAGSOPGØRELSEN.,
Lad os skrive en SQL Server-CASE-sætning, der angiver værdien af den tilstand, kolonne til “Ny”, hvis værdien i modellen kolonne er større end 2010, at de “Gennemsnitlige”, hvis værdien i modellen kolonne er større end 2000, og at “Gamle”, hvis værdien i modellen kolonne er større end i 1990.,
output af scriptet ovenfor, ser ud som dette:
I ovenstående script, vi tildelt tre forskellige værdier til den betingelse, kolonne afhængigt af værdien i modellen kolonne.,
i ovenstående script overlapper betingelserne imidlertid som. modellen med en værdi større end 2010 har også en værdi større end 2000 og 1990. En bedre måde at implementere flere betingelser er at bruge logiske operatører som OG, ELLER, IKKE, etc.,N model > 2010 og DEREFTER ” Nye ”
output af ovenstående script ser sådan her ud:
man kan også evaluere flere betingelser fra forskellige kolonner ved hjælp af SQL Server-CASE-sætningen., I det følgende eksempel tildeler vi værdien af “Ny hvid” til tilstandskolonnen, hvor modellen er større end 2010, og farven er hvid.,HØNE ” Nye ”
output ser ud som dette:
Du kan se fra række 5, at, da den farve er hvid, og den model er større end 2010, værdien for betingelsen kolonne har været indstillet til “Nye Hvide” i produktionen.,
brug af GROUP BY med S .l Server CASE statement
CASE statement kan også bruges sammen med GROUP BY statement for at anvende aggregerede funktioner.,v id=”1dd7e33b85″>
I ovenstående script vi bruge TÆLLER samlede funktion med SAGEN erklæring.,
s .l Server CASE-sætningen indstiller værdien af tilstandskolonnen til “ny” eller “gammel”. Inden for gruppen efter klausul specificerer vi, at det tilsvarende antal for “nyt” øges med 1, når der opstår en modelværdi på mere end 2000. Afsnittet andet betyder, at vi øger tællingen for “gammel” med 1, hvis værdien af modellen er 2000 eller mindre. Udgangen af scriptet ovenfor ser sådan ud:
da vores datasæt har fem køretøjer med en værdi for ‘model’ på mere end 2000, kan du se en 5 i tællekolonnen for “nye” køretøjer., Tilsvarende havde vi 5 gamle køretøjer, og derfor kan vi se 5 for tællekolonnen for “gamle” køretøjer.
På samme måde kan vi gruppere med mere end to værdier., 2000 DEREFTER ‘Gennemsnitlige’
I ovenstående script, vi grupperet data i tre kategorier: for det “Nye”, “Gennemsnitlig” og “Gamle”.,
udgangen ser sådan ud:
Du kan se tællingen for “nye”, “gennemsnitlige” og “gamle” tilstandsbiler.
konklusion
SAGSOPGØRELSEN er praktisk, når du vil implementere IF-THEN logik i s .l Server. I denne artikel så vi, hvilken SAGSOPGØRELSE der er sammen med dens syntaks. Vi så også forskellige eksempler på SAGSANGIVELSE sammen med dens brug med GROUP BY-klausulen.,
Andre gode artikler fra Ben
- Forståelse SQL Server forespørgsel plan cache
- Hvad er forskellen mellem Grupperede og Ikke-Grupperede Indeks i SQL Server?
- Sådan bruges vinduet funktioner
- at Forespørge data ved hjælp af SQL Server SAG erklæring
- Forfatter
- Seneste Indlæg
Vis alle indlæg af Ben Richardson
- Power BI: Vandfald Diagrammer og Kombineret Visuals – januar 19, 2021
- Power BI: Betinget formatering og farver data i aktion – 14 januar 2021
- Power BI: Import af data fra SQL Server og MySQL – januar 12, 2021