SQL Academy
Premium
Funktionsreferenz

IF

Entsprechung in PostgreSQL:

Gibt einen von zwei Werten zurück, je nachdem, ob die Bedingung wahr ist.

MySQL 8.1
IF(condition, value_if_true, value_if_false)

Parameter

conditionBOOLEAN
Zu prüfende Bedingung
value_if_true
Wert, wenn die Bedingung wahr ist
value_if_false
Wert, wenn die Bedingung falsch oder NULL ist

Rückgabewert

value_if_true oder value_if_false; eine Bedingung gleich NULL oder 0 gilt als falsch

Beispiele

Auswahl nach Bedingung

MySQL 8.1
SELECT IF(10 > 20, 'yes', 'no') AS result;
result
no

Beschriftung nach Geburtsjahr

MySQL 8.1
SELECT member_name,
	birthday,
	IF(
		YEAR(birthday) < 1980,
		'before 1980',
		'since 1980'
	) AS born
FROM FamilyMembers;
member_namebirthdayborn
Headley Quincey1960-05-13before 1980
Flavia Quincey1963-02-16before 1980
Andie Quincey1983-06-05since 1980
Lela Quincey1985-06-07since 1980
Annie Quincey1988-04-10since 1980
Ernest Forrest1961-09-11before 1980
Constance Forrest1968-09-06before 1980
Wednesday Addams2005-01-13since 1980

NULL-Bedingung gilt als falsch

MySQL 8.1
SELECT IF(NULL, 'yes', 'no') AS result;
result
no

Details

Die Bedingung ist wahr, wenn sie weder 0 noch NULL ist. Ein String in der Bedingung wird in eine Zahl umgewandelt: IF('abc', 'yes', 'no') gibt no zurück. In PostgreSQL gibt es die Funktion IF nicht — dasselbe schreibst du dort mit CASE WHEN condition THEN a ELSE b END.

Siehe auch

Wo du es lernst