1.1 Liste der bedingten Funktionen

if-elseDie 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 CASEstellen 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 IFist 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 .