Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: Database SQL SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
di Microsoft Fabric
Membuat array JSON dari agregasi data atau kolom SQL.
JSON_ARRAYAGG juga dapat digunakan dalam SELECT pernyataan dengan GROUP BY GROUPING SETS klausa.
Nota
Untuk membuat objek JSON dari agregat, gunakan JSON_OBJECTAGG.
Kedua fungsi agregat JSON_OBJECTAGG dan JSON_ARRAYAGG adalah:
umumnya tersedia untuk Azure SQL Database, Azure SQL Managed Instance (dengan SQL Server 2025 atau Always-up-to-dateupdate policy**), database SQL di Microsoft Fabric, dan Fabric Data Warehouse.
dalam pratinjau untuk SQL Server 2025 (17.x).
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
Ekspresi nilai bisa berupa kolom atau ekspresi dalam kueri atau konstanta/literal.
json_null_clause
Optional.
json_null_clause dapat digunakan untuk mengontrol perilaku JSON_ARRAYAGG fungsi saat value_expression adalah NULL. Opsi NULL ON NULL mengonversi nilai SQL NULL menjadi nilai null JSON saat menghasilkan nilai elemen dalam array JSON. Opsi ABSENT ON NULL menghilangkan elemen dalam array JSON jika nilainya adalah NULL. Jika dihilangkan, ABSENT ON NULL adalah default.
order_by_clause
Optional. Urutan elemen dalam array JSON yang dihasilkan dapat ditentukan untuk mengurutkan baris input ke agregat.
Mengembalikan nilai
Mengembalikan string array JSON yang valid dari jenis nvarchar(maks ).
RETURNING json Jika opsi disertakan maka array JSON dikembalikan sebagai jenis json.
Examples
Contoh 1
Contoh berikut mengembalikan array JSON kosong.
SELECT JSON_ARRAYAGG(NULL);
Result
[]
Contoh 2
Contoh berikut membuat array JSON dengan tiga elemen dari kumpulan hasil.
SELECT JSON_ARRAYAGG(c1)
FROM (VALUES ('c'), ('b'), ('a')) AS t(c1);
Result
["c","b","a"]
Contoh 3
Contoh berikut membuat array JSON dengan tiga elemen yang diurutkan berdasarkan nilai kolom.
SELECT JSON_ARRAYAGG( c1 ORDER BY c1)
FROM (
VALUES ('c'), ('b'), ('a')
) AS t(c1);
Result
["a","b","c"]
Contoh 4
Contoh berikut mengembalikan hasil dengan dua kolom. Kolom pertama berisi object_id nilai . Kolom kedua berisi array JSON yang berisi nama kolom. Kolom dalam array JSON diurutkan berdasarkan column_id nilai .
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"] |
Contoh 5
Contoh berikut mengembalikan hasil dengan empat kolom dari pernyataan SELECT yang berisi SUM dan JSON_ARRAYAGG agregat dengan GROUP BY GROUPING SETS. Dua kolom pertama mengembalikan id nilai kolom dan type . Kolom total_amount ketiga mengembalikan nilai agregat SUM pada amount kolom. Kolom keempat json_total_amount mengembalikan nilai agregat JSON_ARRAYAGG pada amount kolom.
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 | jenis | 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] |
Contoh 6
Contoh berikut mengembalikan array JSON sebagai jenis json .
SELECT JSON_ARRAYAGG(1 RETURNING JSON);
Result
[1]