SQLShack (Norsk)

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>

OPPRETT Database ShowRoom;
BRUK ShowRoom;
OPPRETT BORD Biler
(
id INT,
navn VARCHAR(50) NOT NULL,
selskapet VARCHAR(50) NOT NULL,
strøm INT NOT NULL,
farge VARCHAR(50) NOT NULL,
modell INT NOT NULL,
tilstand VARCHAR(50) NOT NULL
)

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.,

VELG navn,
modell,
TILFELLE NÅR modellen > 2010 DA ‘Nye’
NÅR modellen > 2000 DA ‘Gjennomsnittlig’
NÅR modellen > 1990 DA ‘Gamle’
ANNET «Gamle» ENDE SOM betingelse
FRA Biler

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’

NÅR modellen > 2000 OG modell <2010 DA ‘Gjennomsnittlig’
NÅR modellen > 1990 OG modell <2000 DERETTER»Gamle’
ANNET «Gamle» ENDE SOM betingelse
FRA Biler

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’

NÅR modellen > 2000 OG modell <2010 DA ‘Gjennomsnittlig’
NÅR modellen > 1990 OG modell <2000 DA ‘Gamle’
ANNET «Gamle» SLUTTEN SOM betingelse
FRA Biler

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″>

1
2
3
4
5
6
7
VELG
TILFELLE NÅR modellen > 2000 DA ‘Nye’
ANNET «Gamle» ENDE SOM tilstand,
TELLE(1) SOM teller
FRA Biler
GRUPPE AV TILFELLE NÅR modellen > 2000 DA ‘Nye’
ANNET «Gamle» END

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’

NÅR modellen > 1990 DA ‘Gamle’
ANNET «Gamle» ENDE SOM tilstand,
TELLE(1) SOM teller
FRA Biler
GRUPPE AV TILFELLE NÅR modellen > 2010 DA ‘Nye’
NÅR modellen > 2000 DA ‘Gjennomsnittlig’
NÅR modellen > 1990 DA ‘Gamle’
ELSE ‘Gamle’ END

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
Ben Richardson går Acuity Trening en ledende leverandør av SQL trening STORBRITANNIA., Det tilbyr et komplett utvalg av SQL opplæring fra innledende kurs gjennom til avansert administrasjon og datavarehus trening – se her for mer informasjon. Acuity har kontorer i London og Guildford, Surrey., Han blogger også noen ganger på Acuity blogg
Vis alle innlegg av Ben Richardson

Siste innlegg av Ben Richardson (se alle)
  • 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

Share

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *