JSON_ARRAYAGG(Transact-SQL)
적용 대상: Azure SQL 데이터베이스 Azure SQL Managed Instance
SQL 데이터 또는 열 집계에서 JSON 배열을 생성하세요.
그 대신 집계에서 JSON 개체를 만드려면 JSON_OBJECTAGG를 사용하세요.
참고 항목
두 json 집계 함수 JSON_OBJECTAGG
JSON_ARRAYAGG
는 모두 현재 Azure SQL Database 및 Azure SQL Managed Instance에 대해 미리 보기로 제공됩니다(Always-up-to-date 업데이트 정책으로 구성됨). .
구문
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>
인수
value_expression
값 식은 쿼리 또는 상수/리터럴의 열 또는 식일 수 있습니다.
json_null_clause
선택 사항. value_expression이 JSON_ARRAYAGG
인 경우, json_null_clause를 사용하여 NULL
함수의 동작을 제어할 수 있습니다. NULL ON NULL
옵션은 JSON 배열에서 요소 값을 생성할 때 SQL NULL
값을 JSON null 값으로 변환합니다. 값이 ABSENT ON NULL
인 경우 NULL
옵션은 JSON 배열의 요소를 생략합니다. 생략하는 경우, ABSENT ON NULL
이(가) 기본값입니다.
order_by_clause
선택 사항. 결과 JSON 배열의 요소 순서를 지정하여 입력 행을 집계로 정렬할 수 있습니다.
예제
예 1
다음 예에서는 빈 JSON 배열을 반환합니다.
SELECT JSON_ARRAYAGG(null);
결과
[]
예제 2
다음 예제에서 결과 집합에 세 개의 요소가 있는 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"]
예시 4
다음 예제에서는 두 개의 열이 결과로 반환됩니다. 첫 번째 열에는 object_id
값이 포함됩니다. 두 번째 열에는 열 이름이 포함된 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"] |