0
COALESCE в PostgreSQL
На чтение1 мин
Обновлено1 месяц назад
Просмотров
COALESCE в PostgreSQL — это встроенная функция, которая возвращает первое ненулевое значение/выражение в заданном списке значений/выражений.
Параметры
- Функция принимает неограниченное количество аргументов.
- Функция
COALESCE
ожидает, что аргументы будут иметь один и тот же тип данных. В противном случае выдает ошибку.
Возвращаемое значение
Эта функция возвращает первый ненулевой аргумент.
Синтаксис
COALESCE (arg_1, arg_2, arg_3, …);
Вычисление функции происходит слева направо. В приведенном выше синтаксисе проверка на нулевое значение будет выполняться для arg_1
, затем для arg_2
.
Пример кода 1
Давайте посмотрим на код ниже:
SELECT COALESCE(NULL, 'educative', 'edpresso', NULL, 'hello') as coalesce_output;
Объяснение кода
В приведенном выше примере мы передаем в COALESCE()
функцию разные аргументы. Некоторые из наблюдений:
- Вывод
educative
. Это первый ненулевой аргумент. - Как только функция достигает второго аргумента, то есть ,
educative
дальнейшие аргументы игнорируются.
Пример кода 2
Давайте посмотрим на другой пример:
CREATE TABLE Product ( Name varchar(100) NOT NULL, Price int ); INSERT INTO Product (Name, Price) VALUES ('mobile', 120), ('TV', 200), ('Remote', NULL), ('Laptop', 1000); select *, COALESCE(Price, 0) * 0.05 as Discount from Product;
Объяснение кода
- Строки с 1 по 3: мы определяем
Product
как таблицу с атрибутамиName
иPrice
. - Строки с 6 по 11: Мы вставляем в
Product
таблицу несколько записей. Здесь мы вставляем запись, гдеPrice
находитсяNULL
. - Строка 13: Рассчитываем скидку в
Price
столбце. ЗдесьCOALESCE()
функция используется с аргументамиPrice
и0
. So0
возвращается, когда какое-либоPrice
значение равноNULL
.