JSON_ARRAYAGG (T-SQL)
Berlaku untuk: Azure SQL Database
Membuat array JSON dari agregasi data atau kolom SQL.
Untuk membuat objek JSON dari agregat, gunakan JSON_OBJECTAGG.
Catatan
Saat ini, fungsi JSON_OBJECTAGG
agregat json dan JSON_ARRAYAGG
tersedia dalam pratinjau untuk Azure SQL Database.
Sintaks
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>
Argumen
value_expression
Ekspresi nilai bisa berupa kolom atau ekspresi dalam kueri atau konstanta/literal.
json_null_clause
Opsional. 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
Opsional. Urutan elemen dalam array JSON yang dihasilkan dapat ditentukan untuk mengurutkan baris input ke agregat.
Contoh
Contoh 1
Contoh berikut mengembalikan array JSON kosong.
SELECT JSON_ARRAYAGG(null);
Hasil
[]
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);
Hasil
["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);
Hasil
["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;
Hasil
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"] |