1.1 Liste over betingede funktioner

SQL-sproget har en liste over funktioner, der minder lidt om operatøren if-elsei switchJava.

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 CASEer 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 IFer 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 .