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;Подпись по году рождения
MySQL 8.1
SELECT member_name,
birthday,
IF(
YEAR(birthday) < 1980,
'before 1980',
'since 1980'
) AS born
FROM FamilyMembers;Условие NULL считается ложным
MySQL 8.1
SELECT IF(NULL, 'yes', 'no') AS result;Подробности
Условие истинно, если оно не равно 0 и не равно NULL. Строка в условии превращается в число: IF('abc', 'yes', 'no') вернёт no. В PostgreSQL функции IF нет — то же записывают через CASE WHEN condition THEN a ELSE b END.