1.1 Liste over betingede funktioner
SQL-sproget har en liste over funktioner, der minder lidt om operatøren if-else
i switch
Java.
Der er i alt 4 sådanne funktioner:
Funktioner | Beskrivelse | |
---|---|---|
1 | SAG | analog afbryder |
2 | HVIS() | En analog af den ternære operator eller if-else |
3 | IFNULL() | analog til if-else |
4 | NULLIF() | analog til if-else |
De sidste tre i SQL er repræsenteret som funktioner, og CASE
er en fuldgyldig operatør, så vi vil overveje det separat til allersidst.
1.2 IF() funktion
En funktion IF()
i SQL minder lidt om en ternær operator i Java. I SQL-sprog tager det 3 parametre og ser sådan ud:
IF (condition, true, false)
Tre udtryk skal sendes til funktionen IF
:
- en tilstand, der er testet for sandhed;
- et udtryk, der returneres, når betingelsen er sand;
- et udtryk, der returneres, når betingelsen er falsk.
Nedenfor vil jeg give nogle eksempler for at gøre det lettere at forstå, hvordan det fungerer:
Anmodning | Resultat | |
---|---|---|
1 | VÆLG HVIS( 1>2 , 2, 3) | 3 |
2 | VÆLG HVIS( 1<2 , 'ja', 'nej') | 'Ja' |
3 | VÆLG HVIS( STRCMP('test','test1' ), 'nej', 'ja') | 'ingen' |
1.3 Funktion IFNULL() og NULLIF()
Der er også to modifikationer af funktionen IF()
.
Den første ændring er funktionen IFNULL()
. Det kræver kun to værdier:
IFNULL (expression 1, expression 2)
Hvis udtryk1 ikke er lig med NULL
, vil funktionen returnere udtryk1 . Hvis udtryk1 IS NULL,
, vil funktionen returnere udtryk2 . Essensen er substitution af standardværdien, når feltet er lig med NULL
.
Den anden modifikation af funktionen IF
er funktionen NULLIF()
, den tager også to værdier:
NULLIF (expression 1, expression 2)
Det virker i den modsatte retning:
- hvis udtryk1 er lig med udtryk2 , så returnerer funktionen
NULL
; - hvis udtryk ikke er ens, returneres udtryk1 .