SQL データまたは列の集計から JSON 配列を構築します。
代わりに集計から JSON オブジェクトを作成するには、JSON_OBJECTAGG を使用します。
注意
json 集計関数 JSON_OBJECTAGG
と JSON_ARRAYAGG
はどちらも、現在、Azure SQL Database、Azure SQL Managed Instance (Always-up-to-date 更新ポリシーで構成)、および Microsoft Fabric Data Warehouse のプレビュー段階にあります。
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>
値式には、クエリまたは定数/リテラル内の列または式を指定できます。
省略可能。
json_null_clause は、JSON_ARRAYAGG
が の場合に、NULL
関数の動作を制御するために使用できます。 オプション NULL ON NULL
を使用すると、JSON 配列内の要素の値を生成するときに、SQL NULL
値が JSON NULL 値に変換されます。 オプション ABSENT ON NULL
を使用すると、値が NULL
の場合、JSON 配列内の要素が省略されます。 省略すると、ABSENT ON NULL
が既定値になります。
省略可能。 結果の JSON 配列内の要素の順序を指定して、入力行を集計に並べ替えることができます。
次の例では、空の JSON 配列を返します。
SELECT JSON_ARRAYAGG(null);
結果
[]
次の例では、結果セットから 3 つの要素を含む JSON 配列を構築します。
SELECT JSON_ARRAYAGG( c1 )
FROM (
VALUES ('c'), ('b'), ('a')
) AS t(c1);
結果
["c","b","a"]
次の例では、列の値で並べ替えられた 3 つの要素を含む JSON 配列を構築します。
SELECT JSON_ARRAYAGG( c1 ORDER BY c1)
FROM (
VALUES ('c'), ('b'), ('a')
) AS t(c1);
結果
["a","b","c"]
次の列は 2 つの列を持つ結果を返します。 最初の列には object_id
値が含まれています。 2 番目の列には、列の名前を含む JSON 配列が含まれています。 JSON 配列内の列は、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;
結果
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"] |