Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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"] |