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: SQL Server 2025 (17.x) Förhandsversion av 
Azure SQL Database
Azure SQL Managed Instance
SQL Database i Förhandsversion av Microsoft Fabric
Konstruerar en JSON-matris från en aggregering av SQL-data eller kolumner. 
              JSON_ARRAYAGGkan också användas i en instruktion med SELECT -GROUP BY GROUPING SETSsats.
Anmärkning
Om du vill skapa ett JSON-objekt från en aggregering i stället använder du JSON_OBJECTAGG.
Både  json-aggregerade funktioner JSON_OBJECTAGG och JSON_ARRAYAGG är:
- allmänt tillgänglig för Azure SQL Database, Azure SQL Managed Instance (med SQL Server 2025 eller Always-up-to-dateupdate policy**), SQL-databas i Microsoft Fabric och Fabric Data Warehouse. 
- förhandsversion för SQL Server 2025 (17.x). 
              
              
              Transact-SQL syntaxkonventioner
Syntax
JSON_ARRAYAGG (value_expression [ order_by_clause ] [ json_null_clause ] [ RETURNING json ] )
json_null_clause ::=  NULL ON NULL | ABSENT ON NULL
order_by_clause ::= ORDER BY <column_list>
Arguments
value_expression
Värdeuttrycket kan vara en kolumn eller ett uttryck i en fråga eller konstanter/literaler.
json_null_clause
Optional. 
              json_null_clause kan användas för att styra funktionsbeteendet JSON_ARRAYAGG 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
Optional. Ordningen på elementen i den resulterande JSON-matrisen kan anges för att sortera indataraderna till aggregeringen.
Returvärde
Returnerar en giltig JSON-matrissträng av typen nvarchar(max). Om alternativet RETURNING json ingår returneras JSON-matrisen som json-typ .
Examples
Exempel 1
I följande exempel returneras en tom JSON-matris.
SELECT JSON_ARRAYAGG(NULL);
Result
[]
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);
Result
["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);
Result
["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;
Result
| 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"] | 
Exempel 5
I följande exempel returneras ett resultat med fyra kolumner från en SELECT-instruktion som innehåller SUM- och JSON_ARRAYAGG-aggregeringar med GROUP BY GROUPING SETS. De två första kolumnerna id returnerar kolumnvärdet och type . Den tredje kolumnen total_amount returnerar värdet för SUM-aggregering i amount kolumnen. Den fjärde kolumnen json_total_amount returnerar värdet för JSON_ARRAYAGG mängd i amount kolumnen.
WITH T
AS (SELECT *
    FROM (VALUES (1, 'k1', 'a', 2), (1, 'k2', 'b', 3), (1, 'k3', 'b', 4), (2, 'j1', 'd', 7), (2, 'j2', 'd', 9)) AS b(id, name, type, amount))
SELECT id,
       type,
       SUM(amount) AS total_amount,
       JSON_ARRAYAGG(amount) AS json_total_amount
FROM T
GROUP BY GROUPING SETS((id), (type), (id, type), ());
Result
| id | type | total_amount | json_total_name_amount | 
|---|---|---|---|
| 1 | a | 2 | [2] | 
| NULL | a | 2 | [2] | 
| 1 | b | 7 | [4,3] | 
| NULL | b | 7 | [4,3] | 
| 2 | d | 16 | [9,7] | 
| NULL | d | 16 | [9,7] | 
| NULL | NULL | 25 | [2,4,3,9,7] | 
| 1 | NULL | 9 | [3,4,2] | 
| 2 | NULL | 16 | [9,7] | 
Exempel 6
I följande exempel returneras en JSON-matris som json-typ .
SELECT JSON_ARRAYAGG(1 RETURNING JSON);
Result
[1]