Bagikan melalui


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.

Konvensi sintaks transact-SQL

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"]