JSON_ARRAYAGG (Transact-SQL)
gäller för:Azure SQL Database
Azure SQL Managed Instance
SQL-analysslutpunkt och -lager i Microsoft Fabric
Konstruerar en JSON-matris från en aggregering av SQL-data eller kolumner.
Om du vill skapa ett JSON-objekt från en aggregering i stället använder du JSON_OBJECTAGG.
Not
Både json mängdfunktioner JSON_OBJECTAGG
och JSON_ARRAYAGG
finns för närvarande i förhandsversion för Azure SQL Database, Azure SQL Managed Instance (konfigurerad med Always-up-to-date uppdateringsprincip) och Microsoft Fabric Data Warehouse.
Transact-SQL syntaxkonventioner
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>
Argument
value_expression
Värdeuttrycket kan vara en kolumn eller ett uttryck i en fråga eller konstanter/literaler.
json_null_clause
Valfri.
json_null_clause kan användas för att styra beteendet för JSON_ARRAYAGG
funktion när value_expression är NULL
. Alternativet NULL ON NULL
konverterar SQL-NULL
-värdet till ett JSON null-värde när du genererar värdet för elementet i JSON-matrisen. Alternativet ABSENT ON NULL
utelämnar elementet i JSON-matrisen om värdet är NULL
. Om det utelämnas är ABSENT ON NULL
standard.
order_by_clause
Valfri. Ordningen på elementen i den resulterande JSON-matrisen kan anges för att sortera indataraderna till aggregeringen.
Exempel
Exempel 1
I följande exempel returneras en tom JSON-matris.
SELECT JSON_ARRAYAGG(null);
resultat
[]
Exempel 2
I följande exempel skapas en JSON-matris med tre element från en resultatuppsättning.
SELECT JSON_ARRAYAGG( c1 )
FROM (
VALUES ('c'), ('b'), ('a')
) AS t(c1);
resultat
["c","b","a"]
Exempel 3
I följande exempel skapas en JSON-matris med tre element ordnade efter värdet för kolumnen.
SELECT JSON_ARRAYAGG( c1 ORDER BY c1)
FROM (
VALUES ('c'), ('b'), ('a')
) AS t(c1);
resultat
["a","b","c"]
Exempel 4
I följande exempel returneras ett resultat med två kolumner. Den första kolumnen innehåller värdet object_id
. Den andra kolumnen innehåller en JSON-matris som innehåller namnen på kolumnerna. Kolumnerna i JSON-matrisen sorteras baserat på värdet column_id
.
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;
resultat
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"] |