Ehdollinen suoritus tarkoittaa kykyä suorittaa koodilohko vain, jos tietty ehto täyttyy. Se on laajalle levinnyt kehitystoiminta. Esimerkiksi yleisin tapa saavuttaa ehdollinen suoritus SQL:ssä on käyttää CASE-käskyä.
CASE-käskyn avulla voimme suorittaa ehdollisen logiikan tarkistamalla yhden tai useamman taulukon sarakkeen arvon ja suorittamalla sitten tietyn koodilohkon kyseisen tarkistuksen tuloksen perusteella.
Tämä opetusohjelma opettaa meille, kuinka CASE-käskyä käytetään, jos annettu arvo on NULL.
SQL-tapauslausunto
Seuraavassa näkyy CASE-käskyn syntaksi SQL:ssä:
CASE-lauseke
WHEN arvo_1 THEN tulos_1
WHEN arvo_2 THEN tulos_2
...
MUU oletustulos
LOPPU
Harkitse seuraavaa esimerkkiä:
luo pöytäopiskelijoita (
id int auto_increment ei null ensisijainen avain,
nimi varchar ( viisikymmentä ) ,
science_score int not null,
math_score int ei null,
history_score int not null,
muu int ei tyhjä
) ;
INSERT INTO opiskelijoille ( nimi, tieteen_pisteet, matematiikan_pisteet, historian_pisteet, muut )
ARVOT
( 'John Doe' , 80 , 70 , 90 , 85 ) ,
( 'Jane Smith' , 95 , 85 , 80 , 92 ) ,
( 'Tom Wilson' , 70 , 75 , 85 , 80 ) ,
( 'Sara Lee' , 88 , 92 , 90 , 85 ) ,
( 'Mike Johnson' , 75 , 80 , 72 , 68 ) ,
( 'Emily Chen' , 92 , 88 , 90 , 95 ) ,
( 'Chris Brown' , 85 , 80 , 90 , 88 ) ,
( 'Lisa Kim' , 90 , 85 , 87 , 92 ) ,
( 'Mark Davis' , 72 , 68 , 75 , 80 ) ,
( 'Ava Lee' , 90 , 95 , 92 , 88 ) ;
Voimme esimerkiksi käyttää CASE-käskyä eri vaihtoehtojen arvioimiseen ja tietyn toiminnon palauttamiseen seuraavan esimerkin mukaisesti:
nimi,
science_score,
math_score,
history_score,
muu,
CASE
KUN ( tieteen_pisteet + matematiikan_pisteet + historian_pisteet + muu ) / 4 > = 90 SITTEN 'A'
KUN ( tieteen_pisteet + matematiikan_pisteet + historian_pisteet + muu ) / 4 > = 80 SITTEN 'B'
KUN ( tieteen_pisteet + matematiikan_pisteet + historian_pisteet + muu ) / 4 > = 70 SITTEN 'C'
KUN ( tieteen_pisteet + matematiikan_pisteet + historian_pisteet + muu ) / 4 > = 60 SITTEN 'D'
MUU 'F'
LOPETA AS 'Arvosana'
opiskelijoilta;
Tuloksena oleva tulos:
SQL-tapauslausunto, kun arvo on nolla
Voimme käyttää CASE-käskyä koodilohkon suorittamiseen käsiteltäessä nolla-arvoja. Lisäksi voimme käyttää IS NULL- ja IS NOT Null -operaattoreita arvioidaksemme NULL-arvoja ja suorittaaksemme tietyn toiminnon palautetun arvon perusteella.
Harkitse seuraavaa syntaksiesimerkkiä:
VALITSECASE
WHEN sarakkeen_nimi ON NULL SIIN 'Arvo on tyhjä'
MUU 'Arvo ei ole tyhjä'
LOPPU tuloksena
FROM taulukon_nimi;
Tässä tapauksessa tarkistamme, onko annetun sarakkeen_nimi arvo tyhjä. Jos totta, palautamme 'Arvo on tyhjä'. merkkijono. Muussa tapauksessa, jos arvo ei ole nolla, palautamme 'Arvo ei ole tyhjä'. merkkijono.
Käytämme myös AS-avainsanaa aliaksena tulosmerkkijonolle.
Harkitse seuraavaa esimerkkitaulukkoa:
INSERT INTO opiskelijoille ( nimi, tieteen_pisteet, matematiikan_pisteet, historian_pisteet, muu, temp )ARVOT
( 'John Doe' , 80 , 70 , 90 , 85 , tyhjä ) ,
( 'Jane Smith' , 95 , 85 , 80 , 92 , tyhjä ) ,
( 'Tom Wilson' , 70 , 75 , 85 , 80 , 't' ) ,
( 'Sara Lee' , 88 , 92 , 90 , 85 , 's' ) ,
( 'Mike Johnson' , 75 , 80 , 72 , 68 , tyhjä ) ,
( 'Emily Chen' , 92 , 88 , 90 , 95 , tyhjä ) ,
( 'Chris Brown' , 85 , 80 , 90 , 88 , 'tyhjä' ) ,
( 'Lisa Kim' , 90 , 85 , 87 , 92 , '' ) ,
( 'Mark Davis' , 72 , 68 , 75 , 80 , tyhjä ) ,
( 'Ava Lee' , 90 , 95 , 92 , 88 , 'a' ) ;
Voimme sitten tulostaa tietyn viestin nolla-arvoille käyttämällä CASE-käskyä.
CASE
KUN lämpötila ON NOLLA NIIN 'Arvo on tyhjä'
MUU 'Arvo ei ole tyhjä'
LOPPU tuloksena
opiskelijoilta s ;
Lähtö:
Johtopäätös
Opimme työskentelemään SQL CASE -käskyn kanssa tietyn ehdon arvioimiseksi ja vaaditun tehtävän suorittamiseksi tuloksena olevan arvon perusteella.