JSON_ARRAYAGG (Transact-SQL)
van toepassing op:Azure SQL DatabaseAzure SQL Managed InstanceSQL Analytics-eindpunt en -warehouse in Microsoft Fabric
Maakt een JSON-matrix op basis van een aggregatie van SQL-gegevens of -kolommen.
Als u in plaats daarvan een JSON-object wilt maken op basis van een aggregaties, gebruikt u JSON_OBJECTAGG.
Notitie
Zowel json statistische functies JSON_OBJECTAGG
als JSON_ARRAYAGG
momenteel in preview zijn voor Azure SQL Database, Azure SQL Managed Instance (geconfigureerd met de Always-up-to-date updatebeleid) en Microsoft Fabric Data Warehouse.
Transact-SQL syntaxisconventies
Syntaxis
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>
Argumenten
value_expression
De waardeexpressie kan een kolom of expressie zijn in een query of constanten/letterlijke waarden.
json_null_clause
Facultatief.
json_null_clause kan worden gebruikt om het gedrag van JSON_ARRAYAGG
functie te bepalen wanneer value_expression wordt NULL
. De optie NULL ON NULL
de SQL-NULL
-waarde converteert naar een JSON-null-waarde bij het genereren van de waarde van het element in de JSON-matrix. De optie ABSENT ON NULL
het element in de JSON-matrix weglaat als de waarde is NULL
. Als u dit weglaat, is ABSENT ON NULL
standaard.
order_by_clause
Facultatief. De volgorde van elementen in de resulterende JSON-matrix kan worden opgegeven om de invoerrijen te ordenen op de statistische waarde.
Voorbeelden
Voorbeeld 1
In het volgende voorbeeld wordt een lege JSON-matrix geretourneerd.
SELECT JSON_ARRAYAGG(null);
resultaat
[]
Voorbeeld 2
In het volgende voorbeeld wordt een JSON-matrix gemaakt met drie elementen uit een resultatenset.
SELECT JSON_ARRAYAGG( c1 )
FROM (
VALUES ('c'), ('b'), ('a')
) AS t(c1);
resultaat
["c","b","a"]
Voorbeeld 3
In het volgende voorbeeld wordt een JSON-matrix samengesteld met drie elementen die zijn gerangschikt op de waarde van de kolom.
SELECT JSON_ARRAYAGG( c1 ORDER BY c1)
FROM (
VALUES ('c'), ('b'), ('a')
) AS t(c1);
resultaat
["a","b","c"]
Voorbeeld 4
In het volgende voorbeeld wordt een resultaat met twee kolommen geretourneerd. De eerste kolom bevat de object_id
-waarde. De tweede kolom bevat een JSON-matrix met de namen van de kolommen. De kolommen in de JSON-matrix worden gerangschikt op basis van de column_id
waarde.
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;
resultaat
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"] |