COALESCE
Заменяет NULL первым значением из списка, которое не равно NULL.
MySQL 8.1
COALESCE(value[, ...])Параметры
- value
- Проверяемые значения, перечисляются через запятую
Возвращаемое значение
Первое значение, не равное NULL; NULL, если все аргументы равны NULL
Примеры
Первое значение не NULL
MySQL 8.1
SELECT COALESCE(NULL, NULL, 1, 2);Источник из одного из двух полей
MySQL 8.1
SELECT event_id,
metadata->>'$.utm_source' AS utm_source,
metadata->>'$.utm_src' AS utm_src,
COALESCE(
metadata->>'$.utm_source',
metadata->>'$.utm_src',
'unknown'
) AS source
FROM events
LIMIT 6;Подробности
В отличие от IFNULL, принимает любое количество аргументов и проверяет их слева направо: так можно взять значение из первого заполненного столбца, а последним аргументом указать запасное значение.