1.1 Lista över villkorliga funktioner

SQL-språket har en lista över funktioner som liknar operatören if-elsei switchJava.

Det finns 4 sådana funktioner totalt:

Funktioner Beskrivning
1 FALL analog strömbrytare
2 OM() En analog till den ternära operatorn eller om-annat
3 IFNULL() analog till if-else
4 NULLIF() analog till if-else

De tre sista i SQL representeras som funktioner och CASEär en fullfjädrad operatör, så vi kommer att överväga det separat i slutet.

1.2 IF() funktion

En funktion IF()i SQL liknar något som en ternär operator i Java. I SQL-språk tar det 3 parametrar och ser ut så här:

IF (condition, true, false)

Tre uttryck måste skickas till funktionen IF:

  • ett tillstånd som prövas för sanning;
  • ett uttryck som returneras när villkoret är sant;
  • ett uttryck som returneras när villkoret är falskt.

Nedan kommer jag att ge några exempel för att göra det lättare att förstå hur det fungerar:

Begäran Resultat
1 VÄLJ OM( 1>2 , 2, 3) 3
2 VÄLJ OM( 1<2 , 'ja', 'nej') 'ja'
3 VÄLJ OM( STRCMP('test','test1' ), 'nej', 'ja') 'Nej'

1.3 Funktionen IFNULL() och NULLIF()

Det finns också två modifieringar av funktionen IF().

Den första modifieringen är funktionen IFNULL(). Det krävs bara två värden:

IFNULL (expression 1, expression 2)

Om expression1 inte är lika med NULL, kommer funktionen att returnera expression1 . Om expression1 IS NULL, kommer funktionen att returnera expression2 . Kärnan är ersättningen av standardvärdet när fältet är lika med NULL.

Den andra modifieringen av funktionen IFär funktionen NULLIF(), den tar också två värden:

NULLIF (expression 1, expression 2)

Det fungerar i motsatt riktning:

  • om expression1 är lika med expression2 , returnerar funktionen NULL;
  • om uttryck inte är lika, returneras expression1 .