1.1 Liste over betingede funksjoner
SQL-språket har en liste over funksjoner som ligner litt på operatøren if-else
i switch
Java.
Det er totalt 4 slike funksjoner:
Funksjoner | Beskrivelse | |
---|---|---|
1 | SAK | analog bryter |
2 | HVIS() | En analog av den ternære operatoren eller if-else |
3 | IFNULL() | analog til if-else |
4 | NULLIF() | analog til if-else |
De tre siste i SQL er representert som funksjoner, og CASE
er en fullverdig operatør, så vi vil vurdere det separat helt til slutt.
1.2 IF() funksjon
En funksjon IF()
i SQL ligner litt på en ternær operatør i Java. I SQL-språk tar det 3 parametere og ser slik ut:
IF (condition, true, false)
Tre uttrykk må sendes til funksjonen IF
:
- en tilstand som er testet for sannhet;
- et uttrykk som returneres når betingelsen er sann;
- et uttrykk som returneres når betingelsen er falsk.
Nedenfor vil jeg gi noen eksempler for å gjøre det lettere å forstå hvordan det fungerer:
Be om | Resultat | |
---|---|---|
1 | VELG HVIS( 1>2 , 2, 3) | 3 |
2 | VELG HVIS( 1<2 , 'ja', 'nei') | 'ja' |
3 | SELECT IF( STRCMP('test','test1' ), 'nei', 'yes') | 'Nei' |
1.3 Funksjonen IFNULL() og NULLIF()
Det er også to modifikasjoner av funksjonen IF()
.
Den første modifikasjonen er funksjonen IFNULL()
. Det krever bare to verdier:
IFNULL (expression 1, expression 2)
Hvis uttrykk1 ikke er lik NULL
, vil funksjonen returnere uttrykk1 . Hvis uttrykk1 IS NULL,
vil funksjonen returnere uttrykk2 . Essensen er erstatning av standardverdien når feltet er lik NULL
.
Den andre modifikasjonen av funksjonen IF
er funksjonen NULLIF()
, den tar også to verdier:
NULLIF (expression 1, expression 2)
Det fungerer i motsatt retning:
- hvis uttrykk1 er lik uttrykk2 , returnerer funksjonen
NULL
; - hvis uttrykk ikke er like, returneres expression1 .