| 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