Изучение этих команд пригодится при написании запросов.

1. Объединение записей с помощью Union & Union All

Все мы знаем, как работает «союз». Эта концепция аналогична той, что используется в теории множеств. Добавление объединения между двумя запросами приведет к получению отдельного набора записей.

UNION удаляет все дубликаты, существующие в результате обоих запросов, тогда как UNION ALL объединяет записи из запросов.

Union All быстрее, чем Union, так как не тратится лишнее время на обработку дубликатов.

2. Преобразование строк в столбцы с помощью ФИЛЬТРА.

Чаще всего мы сталкиваемся с ситуацией, когда значения строк необходимо использовать в качестве имен столбцов.

Чтобы преобразовать данные и отобразить их в нескольких столбцах, можно использовать ФИЛЬТР. Давайте посмотрим на пример ниже.

Item         Qty        Type
------------ ---------- -------------  
desk         5          domestic
bat          10         imported
table        15         domestic
table        25         imported
desk                    domestic

Чтобы отобразить общее количество по элементам и типам из таблицы, используйте ФИЛЬТР!

Запрос:

Результат:

desk_from_domestic           bat_from_domestic
-------------------------    -------------------------
5                            10 

3. Возврат ненулевых значений с помощью COALESCE.

Чтобы возвращать ненулевые значения из функций PostgreSQL, даже если данные в таблицах действительно содержат нулевые значения, используйте функцию COALESCE - она ​​возвращает первый переданный ей ненулевой аргумент.

Обычный запрос

SELECT qty * 10 from purchases

Результат:

   Result
 ---------- 
    50          
    100        
    150         
    250         
    null         

Тот же запрос с COALESCE:

SELECT COALESCE(qty,0) * 10 as result from purchases

Значения в поле qty, содержащем нулевые значения, теперь будут нулями. Теперь можно выполнять математические операции с этими значениями!

Результат:

Result
 ---------- 
    50          
    100        
    150         
    250         
    0

4. Функции отладки с помощью RAISE NOTICE

Вы один из тех разработчиков, которые полагаются на console.log или print для отладки функций?

Если да, RAISE NOTICE сделает то же самое в PostgreSQL, и это очень удобно!

raise notice 'quantity: %', quantity;

5. Работа с датами с помощью EXTRACT

Хотите знать, как выполнять операции, подобные регулярным выражениям, с датами?

EXTRACT можно использовать для получения дня, месяца, года, часа и т. д. из поля, содержащего отметку времени или дату .

SELECT EXTRACT(DAY FROM TO_DATE(final_date, 'YYYY-MM-DD')) INTO final_day;

Заключительные примечания

Все эти команды, кроме RAISE NOTICE, также работают в SQL. Работа со сложными SQL-запросами и функциями может быть пугающей, но знание этих команд заставит вас почувствовать, что кодирование на SQL не так уж и сложно :)

Вот и все, ребята! Спасибо за прочтение.