JSON_ARRAYAGG (Transact-SQL)
Dotyczy:Azure SQL Database
azure SQL Managed Instance
punkt końcowy analizy SQL i magazyn w usłudze Microsoft Fabric
Tworzy tablicę JSON z agregacji danych SQL lub kolumn.
Aby utworzyć obiekt JSON na podstawie agregacji, użyj JSON_OBJECTAGG.
Nuta
Zarówno funkcje agregujące jsonJSON_OBJECTAGG
, jak i JSON_ARRAYAGG
są obecnie dostępne w wersji zapoznawczej dla usługi Azure SQL Database, Azure SQL Managed Instance (skonfigurowane przy użyciu up-toalways-up-to-date zasad aktualizacji) i usługi Microsoft Fabric Data Warehouse.
Transact-SQL konwencje składni
Składnia
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>
Argumenty
value_expression
Wyrażenie wartości może być kolumną lub wyrażeniem w zapytaniu lub stałymi/literałami.
json_null_clause
Fakultatywny.
json_null_clause można użyć do kontrolowania zachowania funkcji JSON_ARRAYAGG
, gdy value_expression jest NULL
. Opcja NULL ON NULL
konwertuje wartość NULL
SQL na wartość null JSON podczas generowania wartości elementu w tablicy JSON. Opcja ABSENT ON NULL
pomija element w tablicy JSON, jeśli wartość jest NULL
. W przypadku pominięcia ABSENT ON NULL
jest ustawieniem domyślnym.
order_by_clause
Fakultatywny. Kolejność elementów w wynikowej tablicy JSON można określić w celu uporządkowania wierszy wejściowych w agregacji.
Przykłady
Przykład 1
Poniższy przykład zwraca pustą tablicę JSON.
SELECT JSON_ARRAYAGG(null);
wyników
[]
Przykład 2
Poniższy przykład tworzy tablicę JSON z trzema elementami z zestawu wyników.
SELECT JSON_ARRAYAGG( c1 )
FROM (
VALUES ('c'), ('b'), ('a')
) AS t(c1);
wyników
["c","b","a"]
Przykład 3
Poniższy przykład tworzy tablicę JSON z trzema elementami uporządkowanymi według wartości kolumny.
SELECT JSON_ARRAYAGG( c1 ORDER BY c1)
FROM (
VALUES ('c'), ('b'), ('a')
) AS t(c1);
wyników
["a","b","c"]
Przykład 4
Poniższy przykład zwraca wynik z dwiema kolumnami. Pierwsza kolumna zawiera wartość object_id
. Druga kolumna zawiera tablicę JSON zawierającą nazwy kolumn. Kolumny w tablicy JSON są uporządkowane na podstawie wartości 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;
wyników
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"] |