Resume: i denne vejledning lærer du, hvordan du bruger postgraduate case betinget udtryk til at danne betingede forespørgsler.
udtrykket postgraduate CASE
er det samme som IF/ELSE
sætningen i andre programmeringssprog. Det giver dig mulighed for at tilføje if-else-logik til forespørgslen for at danne en kraftig forespørgsel.
da CASE
er et udtryk, kan du bruge det på alle steder, hvor et udtryk kan bruges f. eks.,SELECT
, WHERE
, GROUP BY
, og HAVING
klausul.
CASE
udtrykket har to former: generel og enkel form.
1) Generelt postgraduate CASE udtryk
følgende illustrerer den generelle form for CASE
erklæring:
Code language: SQL (Structured Query Language) (sql)
i denne syntaks, hver betingelse (condition_1
, condition_2
…) er et boolsk udtryk, der returnerer enten true
eller false
.
når en betingelse evalueres til false
, evaluerer udtrykket CASE
den næste betingelse fra top til bund, indtil den finder en betingelse, der evalueres til true
.
hvis en betingelse evalueres til true
, returnerer udtrykket CASE
det tilsvarende resultat, der følger betingelsen. Hvis condition_2
f.eks. evalueres til true
, returnerer udtrykket CASE
result_2
. Det stopper også straks med at evaluere det næste udtryk.
hvis alle betingelser evalueres til false
, returnerer udtrykketCASE
resultatet (else_result
), der følger nøgleordet ELSE
. Hvis du udelader ELSE
– klausulen, returnerer udtrykket CASE
NULL
.
lad os se på film
tabellen fra eksempeldatabasen.
A) et generelt eksempel
Antag, at du vil mærke filmene efter deres længde baseret på følgende logik:
- hvis længden er mindre end 50 minutter, er filmen kort.
- hvis længden er større end 50 minutter og mindre end eller lig med 120 minutter, er filmen medium.
- hvis længden er større end 120 minutter, er filmen Lang.
for at anvende denne logik kan du bruge CASE
udtrykket i SELECT
sætningen som følger:
Code language: PHP (php)
Output:
Bemærk, at vi placerede et kolonnealias duration
efter CASE
– udtrykket.
B) brug af CASE med et aggregatfunktionseksempel
Antag, at du vil tildele prissegmenter til film med følgende logik:
- hvis lejeprisen er 0,99, er filmen økonomisk.
- hvis lejeprisen er 1,99, er filmen masse.
- hvis lejeprisen er 4,99, er filmen præmie.
og du vil vide antallet af film, der hører til økonomi, masse og præmie.
i dette tilfælde kan du bruge CASE
– udtrykket til at konstruere forespørgslen som følger:
Code language: SQL (Structured Query Language) (sql)
resultatet af forespørgslen er som følger:
i dette eksempel brugte vi CASE
– udtrykket til at returnere 1 eller 0, hvis lejeprisen falder inden for hvert prissegment. Og vi anvendte SUM
– funktionen til at beregne summen af film for hvert prissegment.
2) simpel postgraduate CASE udtryk
postgraduate giver en anden form for CASE
udtryk kaldet simple form som følger:
Code language: SQL (Structured Query Language) (sql)
CASE
evaluerer først expression
og sammenligner resultatet med hver værdi( value_1
, value_2
, …) i WHEN
klausulerne sekventielt, indtil den finder kampen.
når resultatet af expression
er lig med en værdi (værdi1, værdi2 osv.) i en WHEN
klausul returnerer CASE
det tilsvarende resultat i THEN
klausulen.
hvis CASE
ikke finder nogen matches, returnerer den else_result
, der følger ELSE
eller NULL
værdien, hvis ELSE
ikke er tilgængelig.
A) simpel postgraduate CASE udtryk eksempel
følgende sætning bruger CASE
udtryk for at tilføje rating beskrivelse til output:
Code language: PHP (php)
i dette eksempel brugte vi et simpelt CASE
udtryk til at sammenligne vurderingen fra film
tabellen med nogle bogstavelige værdier som G, PG, NC17, PG-13 og returnere den tilsvarende klassificeringsbeskrivelse.
B) ved hjælp af simple CASE udtryk med aggregat funktion eksempel
følgende sætning bruger CASE
udtryk med SUM
funktion til at beregne antallet af film i hver rating:
Code language: PHP (php)
i denne tutorial har du lært, hvordan du bruger udtrykket postgraduate CASE
til at danne komplekse forespørgsler.
- var denne tutorial nyttig ?
- Ja