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 function> ::= LIST '(' [ {ALL | DISTINCT} ] <value expression> [',' <delimiter value> ] ')' <delimiter value> ::= { <string literal> | <parameter> | <variable> }
Аргумент | Описание |
---|---|
ALL | Просматривает все значения в столбце. |
DISTINCT | Исключает повторяющиеся значения, затем ищет наибольшее. |
<value expression> | Столбец или выражение, которое приводится к строковому типу данных. |
<delimiter value> | Выражение, являющееся разделителем списка. |
LIST() является агрегатной функцией, которая обьединяет все элементы группы в строку-список.
В связи с особенностями реализации функция 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;
Firebird-2.1-ReleaseNotes.pdf