Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2025 (17.x)
Microsoft Fabric'te
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği SQL veritabanı
SQL verilerinin veya sütunlarının bir toplamasından bir JSON dizisi oluşturur.
JSON_ARRAYAGGyan tümcesi olan SELECT bir GROUP BY GROUPING SETS deyimde de kullanılabilir.
Uyarı
Bunun yerine bir toplamadan JSON nesnesi oluşturmak için JSON_OBJECTAGG kullanın.
Hem json toplama işlevleri JSON_OBJECTAGG hem de JSON_ARRAYAGG şunlardır:
Genel olarak Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ( SQL Server 2025 veya Always-up-to-dategüncelleştirme ilkesi** ile), Microsoft Fabric'teki SQL veritabanı ve Doku Veri Ambarı için kullanılabilir.
SQL Server 2025 (17.x) için önizlemede.
Transact-SQL söz dizimi kuralları
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
Değer ifadesi, sorgudaki bir sütun veya ifade ya da sabitler/değişmez değerler olabilir.
json_null_clause
Optional.
json_null_clause, JSON_ARRAYAGGolduğunda işlevin NULL davranışını denetlemek için kullanılabilir.
NULL ON NULL seçeneği, JSON dizisindeki öğesinin değerini oluştururken SQL NULL değerini bir JSON null değerine dönüştürür.
ABSENT ON NULL seçeneği, değer NULLise JSON dizisindeki öğesini atlar. Atlanırsa, ABSENT ON NULL varsayılandır.
order_by_clause
Optional. Sonuçta elde edilen JSON dizisindeki öğelerin sırası, giriş satırlarını toplamaya göre sıralamak için belirtilebilir.
Dönüş değeri
Nvarchar(max) türünde geçerli bir JSON dizi dizesi döndürür.
RETURNING json Seçenek dahil edilirse JSON dizisi json türü olarak döndürülür.
Examples
Örnek 1
Aşağıdaki örnek boş bir JSON dizisi döndürür.
SELECT JSON_ARRAYAGG(NULL);
Result
[]
Örnek 2
Aşağıdaki örnek, bir sonuç kümesinden üç öğe içeren bir JSON dizisi oluşturur.
SELECT JSON_ARRAYAGG(c1)
FROM (VALUES ('c'), ('b'), ('a')) AS t(c1);
Result
["c","b","a"]
Örnek 3
Aşağıdaki örnek, sütunun değerine göre sıralanmış üç öğe içeren bir JSON dizisi oluşturur.
SELECT JSON_ARRAYAGG( c1 ORDER BY c1)
FROM (
VALUES ('c'), ('b'), ('a')
) AS t(c1);
Result
["a","b","c"]
Örnek 4
Aşağıdaki örnek, iki sütunlu bir sonuç döndürür. İlk sütun object_id değerini içerir. İkinci sütun, sütunların adlarını içeren bir JSON dizisi içerir. JSON dizisindeki sütunlar column_id değerine göre sıralanır.
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"] |
Örnek 5
Aşağıdaki örnek, TOPLA ve GRUPLANDıRMA GÖRE GRUPLANDıRMA KÜMELERI ile JSON_ARRAYAGG toplamları içeren select deyiminden dört sütun içeren bir sonuç döndürür. İlk iki sütun ve id sütun değerini döndürürtype. Üçüncü sütun, sütundaki total_amountamount TOPLA toplama değerini döndürür. Dördüncü sütun, sütundaki json_total_amountamount JSON_ARRAYAGG toplama değerini döndürür.
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] |
Örnek 6
Aşağıdaki örnek json türü olarak bir JSON dizisi döndürür.
SELECT JSON_ARRAYAGG(1 RETURNING JSON);
Result
[1]
İlgili içerik
- SQL Veritabanı Altyapısında JSON Yol İfadeleri
- SQL Server'da JSON verilerini
- JSON_OBJECTAGG (Transact-SQL)