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 .
GO TO FULL VERSION