FirebirdSQL logo

LIST()

Доступно в

DSQL

Синтаксис
LIST([ALL | DISTINCT] <expr> [, separator])
Table 1. Параметры функции LIST
Параметр Описание

expr

Выражение.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает строковый тип данных или BLOB.Поля типа дата / время и числовые преобразуются к строке.Агрегатные функции в качестве выражения не допускаются.

separator

Разделитель.Выражение строкового типа.По умолчанию разделителем является запятая.

Тип возвращаемого результата

BLOB

Функция LIST возвращает строку, состоящую из значений аргумента, отличных от NULL в группе,разделенных запятой или заданным пользователем разделителем.Если нет значений, отличных от NULL (включая случай, когда группа пуста), возвращается NULL.

  • ALL (по умолчанию) приводит к обработке всех значений, отличных от NULL.Если указано ключевое слово DISTINCT, то дубликаты удаляются, за исключением случаев, когда expr является BLOB.

  • Необязательный аргумент separator может быть любым строковым выражением.Это позволяет указать, например, ascii_char (13) в качестве разделителя.

  • Аргументы expr и separator поддерживают BLOB любого размера и набора символов.

  • Дата / время и числовые аргументы неявно преобразуются в строки перед объединением.

  • Результатом функции является текстовый BLOB, кроме случаев, когда expr является BLOB другого подтипа.

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

Примеры LIST

Example 1. Использование функции LIST

Получение списка, порядок не определён.

SELECT LIST (display_name, '; ')
FROM GR_WORK;
Example 2. Использование функции LIST с заданным порядком

Получение списка в алфавитном порядке.

SELECT LIST (display_name, '; ')
FROM (SELECT display_name
      FROM GR_WORK
      ORDER BY display_name);
См. также:

SELECT.