JSON_OBJECTAGG(Transact-SQL)
적용 대상: Azure SQL 데이터베이스 Azure SQL Managed Instance
SQL 데이터 또는 열 집계에서 JSON 개체를 생성합니다.
키/값 쌍을 입력 값, 열, 변수 참조로 지정할 수 있습니다.
대신 집계에서 JSON 배열을 만드려면 JSON_ARRAYAGG를 사용합니다.
참고 항목
두 json 집계 함수 JSON_OBJECTAGG
JSON_ARRAYAGG
는 모두 현재 Azure SQL Database 및 Azure SQL Managed Instance에 대해 미리 보기로 제공됩니다(Always-up-to-date 업데이트 정책으로 구성됨).
구문
JSON_OBJECTAGG ( json_key_value [ json_null_clause ] )
json_key_value ::= <json_name> : <value_expression>
json_null_clause ::= NULL ON NULL | ABSENT ON NULL
인수
json_key_value
JSON 개체의 키/값 쌍.
json_null_clause
선택 사항. 값이 NULL
이면 개체의 전체 속성을 생략하거나 JSON null을 속성 값으로 사용합니다. 생략하는 경우, NULL ON NULL
이(가) 기본값입니다.
예제
예 1
다음 예제에서는 하나의 키와 null 값이 있는 JSON 개체를 반환합니다.
select JSON_OBJECTAGG ( 'key':null )
결과
{"key":null}
예제 2
다음 예제에서는 결과 집합의 세 가지 속성을 사용하여 JSON 개체를 생성합니다.
SELECT JSON_OBJECTAGG( c1:c2 )
FROM (
VALUES('key1', 'c'), ('key2', 'b'), ('key3','a')
) AS t(c1, c2);
결과
{"key1":"c","key2":"b","key3":"a"}
예제 3
다음 예제에서는 두 개의 열이 결과로 반환됩니다. 첫 번째 열에는 object_id
값이 포함됩니다. 두 번째 열에는 키가 열 이름이고 값이 column_id
인 JSON 개체가 포함됩니다.
SELECT TOP(5) c.object_id, JSON_OBJECTAGG(c.name:c.column_id) AS columns
FROM sys.columns AS c
GROUP BY c.object_id;
결과
object_id | column_list |
---|---|
3 | {"bitpos":12,"cid":6,"colguid":13,"hbcolid":3,"maxinrowlen":8,"nullbit":11,"offset":10,"ordkey":7,"ordlock":14,"rcmodified":4,"rscolid":2,"rsid":1,"status":9,"ti":5} |
5 | {"cmprlevel":9,"fgidfs":7,"fillfact":10,"idmajor":3,"idminor":4,"lockres":17,"maxint":13,"maxleaf":12,"maxnullbit":11,"minint":15,"minleaf":14,"numpart":5,"ownertype":2,"rcrows":8,"rowsetid":1,"rsguid":16,"scope_id":18,"status":6} |
6 | {"cloneid":6,"dbfragid":8,"id":1,"partid":3,"rowsetid":7,"segid":5,"status":9,"subid":2,"version":4} |
7 | {"auid":1,"fgid":5,"ownerid":3,"pcdata":10,"pcreserved":11,"pcused":9,"pgfirst":6,"pgfirstiam":8,"pgroot":7,"status":4,"type":2} |
8 | {"fileid":2,"filename":4,"name":3,"status":1} |