Coalesce в PostgreSQL: что это такое и как использовать
Coalesce в PostgreSQL - это функция, которая позволяет выбирать первое непустое значение из заданных выражений. Она используется для замены нулевых значений на альтернативные значения или для выбора значения из нескольких столбцов.
Синтаксис функции coalesce выглядит следующим образом:
coalesce(expr1, expr2, …)
Она принимает один или несколько аргументов, которые представляют собой любые значения или выражения, в том числе столбцы таблиц.
Рассмотрим пример использования coalesce для замены нулевых значений на альтернативные:
SELECT name, coalesce(age, 0) as age FROM people;
В данном примере мы выбираем имена и возраст людей из таблицы people. Если возраст человека не указан в таблице, то значение будет заменено на 0.
Также coalesce может использоваться для выбора значения из нескольких столбцов. Рассмотрим пример:
SELECT coalesce(email, phone, '') as contact FROM users;
В данном примере мы выбираем контактные данные пользователей из таблицы users. Если у пользователя есть email, то оно будет выбрано в качестве контакта. Если у него нет email, то будет выбран номер телефона. Если и телефона нет, то будет выбрана пустая строка.
В общем случае, coalesce может использоваться в любом месте запроса, где требуется выбор значения из множества значений. Она может использоваться для замены отсутствующих значений на альтернативные, для выбора значения из нескольких столбцов или для выбора значения из нескольких таблиц.
Примеры кода на использование функции coalesce в PostgreSQL:
-- выбор значения из нескольких столбцов
SELECT coalesce(first_name, last_name) as name FROM users;
-- замена нулевых значений на альтернативные
SELECT coalesce(income, 0) as income FROM sales;
-- выбор значения из нескольких таблиц
SELECT coalesce(u.email, a.email) as email FROM users u LEFT JOIN accounts a ON a.user_id = u.id;