Перейти к основному содержимому
Перейти к основному содержимому

groupConcat

Вычисляет склеенную строку из группы строк, опционально разделенных разделителем и опционально ограниченных максимальным количеством элементов.

Синтаксис

groupConcat[(delimiter [, limit])](expression);

Псевдоним: group_concat

Аргументы

  • expression — выражение или имя колонки, которое возвращает строки для объединения.
  • delimiterстрока, которая будет использоваться для разделения объединенных значений. Этот параметр является необязательным и по умолчанию равен пустой строке или значению разделителя из параметров, если он не указан.

Параметры

  • delimiterстрока, которая будет использоваться для разделения объединенных значений. Этот параметр является необязательным и по умолчанию равен пустой строке, если не указан.
  • limit — положительное целое число, указывающее максимальное количество элементов для соединения. Если имеется больше элементов, лишние элементы игнорируются. Этот параметр является необязательным.
примечание

Если разделитель указан без лимита, он должен быть первым параметром. Если указаны и разделитель, и лимит, разделитель должен предшествовать лимиту.

Также, если разные разделители указаны как параметры и аргументы, будет использован только разделитель из аргументов.

Возвращаемое значение

  • Возвращает строку, состоящую из объединенных значений колонки или выражения. Если в группе нет элементов или есть только элементы null, и функция не определяет обработку только null значений, результатом будет nullable строка со значением null.

Примеры

Входная таблица:

┌─id─┬─name─┐
│  1 │ John │
│  2 │ Jane │
│  3 │ Bob  │
└────┴──────┘
  1. Основное использование без разделителя:

Запрос:

SELECT groupConcat(Name) FROM Employees;

Результат:

JohnJaneBob

Это объединяет все имена в одну непрерывную строку без какого-либо разделителя.

  1. Использование запятой в качестве разделителя:

Запрос:

SELECT groupConcat(', ')(Name)  FROM Employees;

или

SELECT groupConcat(Name, ', ')  FROM Employees;

Результат:

John, Jane, Bob

Этот вывод показывает имена, разделенные запятой с последующим пробелом.

  1. Ограничение количества объединенных элементов

Запрос:

SELECT groupConcat(', ', 2)(Name) FROM Employees;

Результат:

John, Jane

Этот запрос ограничивает вывод первыми двумя именами, даже если в таблице есть больше имен.