1.1 Lista över villkorliga funktioner
SQL-språket har en lista över funktioner som liknar operatören if-else
i switch
Java.
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 .