1.1 Liste der bedingten Funktionen
if-else
Die SQL-Sprache verfügt über eine Liste von Funktionen, die dem Operator in Java etwas ähneln switch
.
Insgesamt gibt es 4 solcher Funktionen:
Funktionen | Beschreibung | |
---|---|---|
1 | FALL | Analogschalter |
2 | WENN() | Ein Analogon des ternären Operators oder if-else |
3 | IFNULL() | Analogon von if-else |
4 | NULLIF() | Analogon von if-else |
Die letzten drei in SQL werden als Funktionen dargestellt und CASE
stellen einen vollwertigen Operator dar, daher werden wir ihn ganz am Ende separat betrachten.
1.2 IF()-Funktion
Eine Funktion IF()
in SQL ähnelt in gewisser Weise einem ternären Operator in Java. In der SQL-Sprache benötigt es drei Parameter und sieht folgendermaßen aus:
IF (condition, true, false)
Der Funktion müssen drei Ausdrücke übergeben werden IF
:
- ein Zustand, der auf Wahrheit geprüft wird;
- ein Ausdruck, der zurückgegeben wird, wenn die Bedingung wahr ist;
- ein Ausdruck, der zurückgegeben wird, wenn die Bedingung falsch ist.
Im Folgenden gebe ich einige Beispiele, um die Funktionsweise leichter zu verstehen:
Anfrage | Ergebnis | |
---|---|---|
1 | SELECT IF( 1>2 , 2, 3) | 3 |
2 | SELECT IF( 1<2 , 'ja', 'nein') | 'Ja' |
3 | SELECT IF( STRCMP('test','test1' ), 'no', 'yes') | 'NEIN' |
1.3 Funktion IFNULL() und NULLIF()
Es gibt auch zwei Modifikationen der Funktion IF()
.
Die erste Modifikation ist die Funktion IFNULL()
. Es werden nur zwei Werte benötigt:
IFNULL (expression 1, expression 2)
Wenn expression1 nicht gleich ist NULL
, gibt die Funktion expression1 zurück . Bei Ausdruck1 IS NULL,
gibt die Funktion Ausdruck2 zurück . Das Wesentliche ist die Ersetzung des Standardwerts, wenn das Feld gleich ist NULL
.
Die zweite Modifikation der Funktion IF
ist die Funktion NULLIF()
, sie nimmt ebenfalls zwei Werte an:
NULLIF (expression 1, expression 2)
Es funktioniert in die entgegengesetzte Richtung:
- Wenn expression1 gleich expression2 ist , gibt die Funktion zurück
NULL
; - Wenn Ausdrücke nicht gleich sind, wird Ausdruck1 zurückgegeben .