Справочник по функциям

IF

Аналог в PostgreSQL:

Возвращает одно из двух значений в зависимости от того, истинно ли условие.

MySQL 8.1
IF(condition, value_if_true, value_if_false)

Параметры

conditionBOOLEAN
Проверяемое условие
value_if_true
Значение, если условие истинно
value_if_false
Значение, если условие ложно или равно NULL

Возвращаемое значение

value_if_true или value_if_false; условие, равное NULL или 0, считается ложным

Примеры

Выбор по условию

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

Подпись по году рождения

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 считается ложным

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

Подробности

Условие истинно, если оно не равно 0 и не равно NULL. Строка в условии превращается в число: IF('abc', 'yes', 'no') вернёт no. В PostgreSQL функции IF нет — то же записывают через CASE WHEN condition THEN a ELSE b END.

Смотрите также

Где изучить