Dela via


JSON_ARRAYAGG (Transact-SQL)

gäller för:Azure SQL DatabaseAzure SQL Managed InstanceSQL-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"]