Coalesce PostgreSQL
Функция COALESCE в PostgreSQL используется для возврата первого ненулевого аргумента из списка аргументов или значения по умолчанию, если все аргументы равны NULL. Это полезно в тех случаях, когда вы хотите вернуть ненулевое значение из списка значений или установить значение по умолчанию, если все аргументы равны NULL.
Давайте рассмотрим примеры использования функции COALESCE с кодом на PostgreSQL.
1. Простые примеры использования COALESCE:
Предположим, у нас есть таблица "users" со следующими столбцами: id (тип данных integer) и name (тип данных varchar). Если столбец name имеет значение NULL, мы хотим заменить его на значение "Unknown".
-- Создание таблицы "users"
CREATE TABLE users (
id integer,
name varchar
);
-- Вставка данных в таблицу
INSERT INTO users (id, name) VALUES (1, 'John');
INSERT INTO users (id, name) VALUES (2, NULL);
-- Использование функции COALESCE для замены NULL на значение "Unknown"
SELECT id, COALESCE(name, 'Unknown') AS name FROM users;
2. Использование COALESCE с числовыми значениями:
Предположим, у нас также есть таблица "products" со следующими столбцами: id (тип данных integer) и price (тип данных numeric). Если столбец price имеет значение NULL, мы хотим заменить его на значение 0.
-- Создание таблицы "products"
CREATE TABLE products (
id integer,
price numeric
);
-- Вставка данных в таблицу
INSERT INTO products (id, price) VALUES (1, 10.5);
INSERT INTO products (id, price) VALUES (2, NULL);
-- Использование функции COALESCE для замены NULL на значение 0
SELECT id, COALESCE(price, 0) AS price FROM products;
3. Использование COALESCE с датами:
Предположим, у нас есть таблица "orders" со следующими столбцами: id (тип данных integer) и date_ordered (тип данных date). Если столбец date_ordered имеет значение NULL, мы хотим заменить его на текущую дату.
-- Создание таблицы "orders"
CREATE TABLE orders (
id integer,
date_ordered date
);
-- Вставка данных в таблицу
INSERT INTO orders (id, date_ordered) VALUES (1, '2021-01-01');
INSERT INTO orders (id, date_ordered) VALUES (2, NULL);
-- Использование функции COALESCE для замены NULL на текущую дату
SELECT id, COALESCE(date_ordered, CURRENT_DATE) AS date_ordered FROM orders;
Это лишь некоторые примеры использования функции COALESCE в PostgreSQL. Она может быть полезна во многих других ситуациях, когда вам необходимо заменить NULL на определенное значение или установить значение по умолчанию.
Надеюсь, данное объяснение и примеры помогут вам лучше понять, как использовать функцию COALESCE в PostgreSQL. Если у вас возникнут еще вопросы, пожалуйста, не стесняйтесь задавать их!