Функция concat_ws() в PostgreSQL используется для объединения нескольких строк в одну строку с указанным разделителем. concat_ws означает «Concatenate With Separator» (Объединить с разделителем) и полезна для объединения нескольких столбцов или значений в одну строку с разделителем между каждым значением.
Синтаксис – функция concat_ws() в PostgreSQL
concat_ws(separator text, string1 text [, string2 text, …])
seperator:
строка, которая будет использоваться в качестве разделителя между объединенными значениями.
string1, string2:
строки для объединения.
Базовые примеры
Объединить несколько строк с помощью дефиса в качестве разделителя
SELECT concat_ws('-', 'Hello', 'PostgreSQL', 'World');
Объяснение:Объединяет «Hello», «PostgreSQL» и «World» с разделителем в виде дефиса (-) между строками.
Результат:

Объединить несколько строк с помощью пробела-разделителя
SELECT concat_ws(' ', 'Hello', 'PostgreSQL', 'World');
Объяснение:Объединяет «Hello», «PostgreSQL» и «World» с пробелом между строками.
Результат:

Использование concat_ws() в столбцах таблицы
Вы можете использовать concat_ws() для объединения значений из разных столбцов в таблице. Для демонстрации примеров давайте используем таблицу «employeetbl».

Объединить несколько столбцов с помощью пробела-разделителя
Вы можете использовать concat_ws() для создания столбца или форматированного строкового столбца, объединяющего несколько столбцов с разделителем-пробелом:
SELECT *, concat_ws(' ', first_name, last_name) AS fullname FROM employeetbl;
Объяснение:Объединяет столбцы first_name и last_name с пробелом между ними и сохраняет результат как столбец full_name.
Результат:

Объединить несколько столбцов с помощью дефиса-разделителя
Вы можете использовать concat_ws() для создания строки столбцов, объединяющей несколько столбцов с разделителями-дефисами (-).
SELECT *, concat_ws('-', first_name, last_name,eno::Text) AS employee_detail FROM employeetbl;
Объяснение:Объединяет столбцы first_name, last_name и eno с дефисом между всеми столбцами и сохраняет результат как столбец employee_detail.
Результат:
