Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Funktionen » SQL-Funktionen (E-O)

 

LIST-Funktion [Aggregat]

Gibt eine Liste mit durch Kommas getrennten Werten zurück

Syntax
LIST( 
[ DISTINCT ] Zeichenfolgenausdruck
[, Begrenzer-Zeichenfolge ]
[ ORDER BY order-by-Ausdruck [ ASC | DESC ], ... ] )
Parameter
  • Zeichenfolgenausdruck   Ein Zeichenfolgenausdruck, normalerweise ein Spaltenname. Für jede Zeile in der Spalte wird der Wert einer kommagetrennten Liste hinzugefügt. Wenn DISTINCT angegeben wurde, werden nur eindeutige Werte hinzugefügt.

  • Begrenzer-Zeichenfolge   Eine Begrenzer-Zeichenfolge für die Listeneinträge. Die Standardeinstellung ist ein Komma. Wenn NULL oder eine leere Zeichenfolge angegeben wird, gibt es keinen Begrenzer. Die Begrenzer-Zeichenfolge muss eine Konstante sein.

  • order_by_Ausdruck   Die von der Funktion zurückgegebenen Elemente sortieren. Vor diesem Argument steht kein Komma, damit ist es einfacher einzusetzen, falls keine Begrenzer-Zeichenfolge angegeben wurde.

    order-by-Ausdruck kann kein Ganzzahlenliteral sein. Er kann aber eine Variable sein, die einen Ganzzahlenliteral enthält. Außerdem dürfen mehrere LIST-Funktionen in demselben Abfrageblock keine unterschiedlichen Argumente für order-by-Ausdruck verwenden.

Rückgabe

LONG VARCHAR

LONG NVARCHAR

Bemerkungen

NULL wird der Liste nicht hinzugefügt. LIST (X) gibt die Verkettung (mit Begrenzern) aller Nicht-NULL-Werte für X für jede Zeile der Gruppe wieder. Wenn in der Gruppe nicht wenigstens eine Zeile mit einem definierten X-Wert existiert, gibt LIST(X) eine leere Zeichenfolge zurück.

Eine LIST-Funktion kann nicht als Fensterfunktion verwendet werden, aber sie kann als Eingabe für eine Fensterfunktion verwendet werden.

Diese Funktion unterstützt NCHAR-Eingaben bzw. Ausgaben.

Standards und Kompatibilität
  • SQL/2003   Erweiterung des Herstellers

Siehe auch
Beispiele

Die folgende Anweisung gibt den Wert "487 Kennedy Court, 547 School Street" zurück.

SELECT LIST( Street ) FROM Employees
WHERE GivenName = 'Thomas';

In der folgenden Anweisung werden Mitarbeiter-IDs aufgeführt. Jede Zeile in der Ergebnismenge enthält eine Trennkommaliste mit Mitarbeiter-IDs für nur eine Abteilung.

SELECT LIST( EmployeeID )
FROM Employees
GROUP BY DepartmentID;
LIST( EmployeeID )
102,105,160,243,247,249,266,278,...
129,195,299,467,641,667,690,856,...
148,390,586,757,879,1293,1336,...
184,207,318,409,591,888,992,1062,...
191,703,750,868,921,1013,1570,...

Die folgende Anweisung sortiert die Mitarbeiter-IDs nach den Nachnamen der Mitarbeiter:

SELECT LIST( EmployeeID ORDER BY Surname ) AS "Sorted IDs"
FROM Employees
GROUP BY DepartmentID;

Sortierte IDs "1751,591,1062,1191,992,888,318,184,1576,207,1684,1643,1607,1740,409,1507"

Sortierte IDs
1013,191,750,921,868,1658,...
1751,591,1062,1191,992,888,318,...
1336,879,586,390,757,148,1483,...
1039,129,1142,195,667,1162,902,...
160,105,1250,247,266,249,445,...

Die folgende Anweisung gibt Listen mit Trennsemikolons zurück: Beachten Sie die Position der ORDER BY-Klausel und des Listentrennzeichens:

SELECT LIST( EmployeeID, ';' ORDER BY Surname ) AS "Sorted IDs"
FROM Employees
GROUP BY DepartmentID;
Sortierte IDs
1013;191;750;921;868;1658;703;...
1751;591;1062;1191;992;888;318;...
1336;879;586;390;757;148;1483;...
1039;129;1142;195;667;1162;902; ...
160;105;1250;247;266;249;445;...

Achten Sie auf den Unterschied zwischen der vorigen und der folgenden Anweisung, die eine Liste mit Trennkommas der Mitarbeiter-IDs, sortiert nach einem zusammengesetzten Sortierschlüssel von ( Surname, ';' ) zurückgibt:

SELECT LIST( EmployeeID ORDER BY Surname, ';' ) AS "Sorted IDs"
FROM Employees
GROUP BY DepartmentID;