LIST()
DSQL, PSQL
BLOB
LIST ([ALL | DISTINCT] <expr> [, separator ])
Parameter | Beschreibung |
---|---|
expr |
Ausdruck.Es kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten, die den String-Datentyp oder ein 'BLOB' zurückgibt.Felder des numerischen Typs und des Datums-/Uhrzeittyps werden in Zeichenfolgen umgewandelt.Aggregatfunktionen sind als Ausdrücke nicht zulässig. |
separator |
Optionales alternatives Trennzeichen, ein Zeichenfolgenausdruck.Komma ist das Standardtrennzeichen |
LIST
gibt einen String zurück, der aus den Nicht-NULL
-Argumentwerten in der Gruppe besteht, getrennt entweder durch ein Komma oder durch ein vom Benutzer angegebenes Trennzeichen.Wenn keine Nicht-NULL
-Werte vorhanden sind (dies schließt den Fall ein, in dem die Gruppe leer ist), wird NULL
zurückgegeben.
-
ALL
(Standard) führt dazu, dass alle Nicht-NULL
-Werte aufgelistet werden.MitDISTINCT
werden Duplikate entfernt, außer wenn expr einBLOB
ist. -
In Firebird 2.5 und höher kann das optionale Argument separator ein beliebiger String-Ausdruck sein.Dadurch ist es möglich, z.B.
ascii_char(13)
als Trennzeichen.(Diese Verbesserung wurde auch auf 2.1.4 zurückportiert.) -
Die Argumente expr und separator unterstützen
BLOB
s jeder Größe und jedes Zeichensatzes. -
Datum/Uhrzeit und numerische Argumente werden vor der Verkettung implizit in Zeichenfolgen umgewandelt.
-
Das Ergebnis ist ein Text
BLOB
, außer wenn expr einBLOB
eines anderen Untertyps ist. -
Die Reihenfolge der Listenwerte ist undefiniert — die Reihenfolge, in der die Strings verkettet werden, wird durch die Lesereihenfolge aus dem Quellsatz bestimmt, die in Tabellen nicht allgemein definiert ist.Wenn die Sortierung wichtig ist, können die Quelldaten mithilfe einer abgeleiteten Tabelle oder ähnlichem vorsortiert werden.