====== LIST() ====== ===== Версии сервера ===== ^ 0.9 ^ 1.0 ^ 1.5.3 ^ 1.5.4 ^ 1.5.5 ^ 2.0 ^ 2.0.3 ^ 2.0.4 ^ 2.1 ^ 2.5 ^ 3.0 ^ | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Да | Да | Да | ===== Формат ===== ::= LIST '(' [ {ALL | DISTINCT} ] [',' ] ')' ::= { | | } ^ Аргумент ^ Описание ^ |ALL |Просматривает все значения в столбце. | |DISTINCT |Исключает повторяющиеся значения, затем ищет наибольшее. | | |Столбец или выражение, которое приводится к строковому типу данных. | | |Выражение, являющееся разделителем списка. | - Аргумент ALL или DISTINCT при вызове конструкции может быть пропущен. Если аргумент не задан явно, то по умолчанию считается ALL. - Аргумент может быть пропущен. Если аргумент не задан явно, то по умолчанию берется символ запятая ','. ===== Описание ===== LIST() является агрегатной функцией, которая обьединяет все элементы группы в строку-список. ===== Замечания ===== - Числовые типы и типы дата/время неявно преобразуются в строковый тип. - результирующее значение имеет тип BLOB с SUB_TYPE TEXT, кроме случая, когда аргументом является BLOB с другим подтипом. - Порядок элементов в списке определен реализацией, т.е. ORDER BY не влияет на результат. - Начиная с версии 2.5 в качестве может выступать строковая функция. :!: В связи с особенностями реализации функция LIST() потребляет достаточно большое количество памяти во время своей работы. Эта память освобождается после завершения транзакции. По этой причине желательно использовать ее в коротких транзакциях! ===== Пример ===== /* v2.1 */ SELECT LIST(ID, ':') FROM MY_TABLE /* v2.5 */ SELECT DISCUSSION_ID, LIST(COMMMENT, ASCII_CHAR(13)) FROM COMMENTS GROUP BY DISCUSSION_ID; ===== См. также ===== [[SUM()]], [[AVG()]], [[MIN()]], [[MAX()]], [[COUNT()]], [[SELECT]] ===== Источник ===== Firebird-2.1-ReleaseNotes.pdf