SQL Server CASE-uttrykket er tilsvarende IF-THEN-setning i Excel.
CASE-uttrykk er brukt til å implementere logikk der du ønsker å sette verdien av en kolonne er avhengig av verdiene i andre kolonner.
SQL Server TILFELLE Erklæring består av minst ett par av NÅR og DERETTER uttalelser. NÅR uttalelsen angir betingelsen for å bli testet. Den uttalelsen angir handling hvis den NÅR tilstanden returnerer TRUE.,
Den ANDRE setningen er valgfritt og utfører når ingen av NÅR forholdene returnere true. SAKEN uttalelsen avsluttes med en SLUTT søkeord.
I denne artikkelen, vil vi ta en titt på en rekke forskjellige eksempler på CASE-uttrykk. Men før vi gjør det, skal vi lage noen dummy-data å jobbe med.,/td>
skriptet ovenfor har opprettet en dummy database kalt ShowRoom med en Tabell i det som kalles Biler., Bilene bordet har syv kolonner: id, navn, firma, strøm, farge, modell og tilstand.
la oss Nå sette inn noen dummy-data inn i Biler-tabellen., Utfør følgende script:
La oss se hvordan våre dataset ser utfør følgende script:
1
|
VELG * FRA Biler
|
output ser ut som dette:
Du kan se at tilstanden kolonne inneholder en X i hver rad i øyeblikket., Vi vil sette verdien av tilstanden kolonnen, avhengig av modellen-kolonnen, ved hjelp av CASE-uttrykk, slik at du kan se tydelig hva som skjer.,
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 SAKEN nøkkelord etterfulgt av NÅR søkeordet og deretter TILSTAND.
tilstanden kan være en hvilken som helst gyldig SQL Server uttrykk som returnerer en boolsk verdi. For eksempel, tilstanden kan være modell > 2000, DERETTER punkt er brukt etter TILSTAND. Hvis TILSTANDEN returnerer true verdien som følger DERETTER punkt er lagret i columnX. Annet, verdien etter ANNET punkt, vil også bli lagret i columnX. SQL Server-CASE-uttrykket ender med SLUTTEN punkt.,
TILFELLET uttalelse eksempler
La oss nå se CASE-uttrykk i handling.
I forrige avsnitt, har vi laget en tabell som heter Biler inne i Utstillingslokalet database.
tilstanden kolonne hadde verdien X for alle rader. Vi vil bruke SQL Server CASE-uttrykk for å angi verdien av tilstanden kolonnen til «Nye» hvis modellen kolonne har en verdi som er større enn 2000, ellers verdi for tilstanden kolonnen vil bli satt til «Gamle».,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., Resultatet av skriptet ovenfor ser ut som dette:
Du kan se at verdien av X i tilstanden kolonnen har blitt erstattet av «Nye» og «Gamle» avhengig av modellen av bilen.
Flere forhold i SAKEN uttalelse
Du kan vurdere flere forhold i SAKEN uttalelse.,
La oss skriv en SQL Server-CASE-uttrykk som angir verdien av tilstanden kolonnen til «Nye» hvis verdien i modellen kolonnen er større enn i 2010 til ‘Gjennomsnittlig’ hvis verdien i modellen kolonnen er større enn 2000, og til «Gamle» hvis verdien i modellen kolonnen er større enn 1990.,
utgangen av skriptet ovenfor ser ut som dette:
I skriptet ovenfor, er vi tildelt tre ulike verdier for tilstand kolonne avhengig av verdien i modellen kolonne.,
Men i skriptet ovenfor, forholdene er overlappende as. modellen med en verdi som er større enn i 2010 også har en verdi som er større enn 2000 og 1990. En bedre måte å implementere flere betingelser er til bruk for logiske operatorer som AND, or, NOT, etc.,N modell > 2010 DA ‘Nye’
utgangen av skriptet ovenfor ser ut som dette:
Vi kan også vurdere flere forhold fra forskjellige kolonner ved hjelp av SQL Server-CASE-uttrykket., I følgende eksempel vil vi gi verdien av «Nye Hvite» til tilstanden kolonne der modellen er større enn i 2010, og fargen er hvit.,A ‘Nye’
output ser ut som dette:
Du kan se fra rad 5 at siden fargen er hvit og den modellen er større enn i 2010, og verdi for tilstanden kolonnen har blitt satt til «Nye Hvite» i utgang.,
ved Hjelp av grupper AV med SQL Server CASE-uttrykk
Den CASE-uttrykket kan også bli brukt i forbindelse med GRUPPEN AV utsagn for å kunne søke samlet funksjoner.,v id=»1dd7e33b85″>
I skriptet ovenfor bruker vi TELLER samlede funksjonen med CASE-uttrykk.,
SQL Server CASE-uttrykket angir verdien av tilstanden kolonnen til «Nye» eller «Gamle». Inne GRUPPEN AV punkt, vi presisere at tilsvarende gjelder for «Nye» øker med 1 hver gang en modell verdi som er større enn 2000 er oppstått. Den Andre delen betyr at vi øker antallet for «Gamle» med 1 hvis verdien av modellen er 2000 eller mindre. Resultatet av skriptet ovenfor ser ut som dette:
Siden vår dataset har fem biler med en verdi for ‘modell’ som er større enn 2000, kan du se et 5 i tellingen kolonnen for «Nye» biler., På samme måte, vi hadde 5 gamle biler, og dermed kan vi se 5 for antall kolonne av «Gamle» kjøretøy.
på samme måte, kan vi GRUPPEN MED mer enn to verdier., 2000 DA ‘Gjennomsnittlig’
I skriptet ovenfor, har vi gruppert de data inn i tre kategorier: «New», «Middels» og «Gamle».,
output ser ut som dette:
Du kan se teller for «Ny», «Middels» og «Gamle» tilstand biler.
Konklusjon
SAKEN uttalelsen kommer i hendig når du ønsker å implementere HVIS-SÅ logikken i SQL Server. I denne artikkelen, vi så hva TILFELLET uttalelse er sammen med sin syntaks. Vi så også ulike eksempler på CASE-uttrykket sammen med sin bruk med GRUPPEN AV klausulen.,
Andre gode artikler fra Ben
- Forstå SQL Server query plan cache
- Hva er forskjellen mellom Samlet og Ikke-Gruppert Indekser i SQL Server?
- Hvordan du bruker vinduet funksjoner
- Spørring data ved hjelp av SQL Server-CASE-uttrykk
- Forfatter
- Siste Innlegg
Vis alle innlegg av Ben Richardson
- Strøm BI: Foss Diagrammer og Kombinert Grafikk – 19. januar 2021
- Strøm BI: Betinget formatering og data farger i action – 14. januar 2021
- Strøm BI: Importere data fra SQL Server og MySQL – 12. januar 2021