Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:Azure SQL-Datenbank
azure SQL Managed Instance
SQL Analytics-Endpunkt und Warehouse in Microsoft Fabric
Erstellt ein JSON-Array aus einer Aggregation von SQL-Daten oder -Spalten.
Verwenden Sie JSON_OBJECTAGG, um stattdessen ein JSON-Objekt aus einem Aggregat zu erstellen.
Hinweis
Sowohl json Aggregatfunktionen JSON_OBJECTAGG
als auch JSON_ARRAYAGG
befinden sich derzeit in der Vorschau für Azure SQL-Datenbank, azure SQL Managed Instance (konfiguriert mit der Always-up-to-date Update policy) und Microsoft Fabric Data Warehouse.
Transact-SQL-Syntaxkonventionen
Syntax
JSON_ARRAYAGG (value_expression [ order_by_clause ] [ json_null_clause ] )
json_null_clause ::= NULL ON NULL | ABSENT ON NULL
order_by_clause ::= ORDER BY <column_list>
Argumente
value_expression
Der Wertausdruck kann eine Spalte oder ein Ausdruck in einer Abfrage oder Konstanten/Literale sein.
json_null_clause
Optional.
json_null_clause kann zum Steuern des Verhaltens der Funktion JSON_ARRAYAGG
verwendet werden, wenn value_expression gleich NULL
ist. Die Option NULL ON NULL
konvertiert den SQL-NULL
-Wert in einen JSON-Null-Wert, wenn der Wert des Elements im JSON-Array generiert wird. Die Option ABSENT ON NULL
lässt das Element im JSON-Array aus, wenn der Wert NULL
ist. Wenn nicht angegeben, ist ABSENT ON NULL
der Standardwert.
order_by_clause
Optional. Die Reihenfolge der Elemente im resultierenden JSON-Array kann angegeben werden, um die Eingabezeilen an das Aggregat zu ordnen.
Beispiele
Beispiel 1
Im folgenden Beispiel wird ein leeres JSON-Array zurückgegeben.
SELECT JSON_ARRAYAGG(null);
Ergebnis
[]
Beispiel 2
Im folgenden Beispiel wird ein JSON-Array mit drei Elementen aus einem Resultset erstellt.
SELECT JSON_ARRAYAGG( c1 )
FROM (
VALUES ('c'), ('b'), ('a')
) AS t(c1);
Ergebnis
["c","b","a"]
Beispiel 3
Im folgenden Beispiel wird ein JSON-Array mit drei Elementen erstellt, die nach dem Wert der Spalte sortiert sind.
SELECT JSON_ARRAYAGG( c1 ORDER BY c1)
FROM (
VALUES ('c'), ('b'), ('a')
) AS t(c1);
Ergebnis
["a","b","c"]
Beispiel 4
Im folgenden Beispiel wird ein Ergebnis mit zwei Spalten zurückgegeben. Die erste Spalte enthält den Wert object_id
. Die zweite Spalte enthält ein JSON-Array, das die Namen der Spalten enthält. Die Spalten im JSON-Array werden basierend auf dem Wert column_id
sortiert.
SELECT TOP(5) c.object_id, JSON_ARRAYAGG(c.name ORDER BY c.column_id) AS column_list
FROM sys.columns AS c
GROUP BY c.object_id;
Ergebnis
object_id | column_list |
---|---|
3 | ["rsid","rscolid","hbcolid","rcmodified","ti","cid","ordkey","maxinrowlen","status","offset","nullbit","bitpos","colguid","ordlock"] |
5 | ["rowsetid","ownertype","idmajor","idminor","numpart","status","fgidfs","rcrows","cmprlevel","fillfact","maxnullbit","maxleaf","maxint","minleaf","minint","rsguid","lockres","scope_id"] |
6 | ["id","subid","partid","version","segid","cloneid","rowsetid","dbfragid","status"] |
7 | ["auid","type","ownerid","status","fgid","pgfirst","pgroot","pgfirstiam","pcused","pcdata","pcreserved"] |
8 | ["status","fileid","name","filename"] |