적용 대상: SQL Server 2022 (16.x)
Azure SQL 데이터베이스
Azure SQL Managed Instance
SQL Analytics endpoint in Microsoft
Fabric
Warehouse SQL데이터베이스 in Microsoft Fabric
0개 이상의 식에서 JSON 배열 텍스트를 생성합니다.
구문
JSON_ARRAY ( [ <json_array_value> [ , ...n ] ] [ <json_null_clause> ] [ RETURNING json ] )
<json_array_value> ::= value_expression
<json_null_clause> ::=
NULL ON NULL
| ABSENT ON NULL
인수
json_array_value
JSON 배열의 요소 값을 정의하는 식입니다.
json_null_clause
JSON_OBJECT
value_expression때 NULL 함수의 동작을 제어하는 데 사용할 수 있습니다.
NULL ON NULL 옵션은 JSON 배열에서 요소 값을 생성할 때 SQL NULL 값을 JSON NULL 값으로 변환합니다.
ABSENT ON NULL 옵션은 값이 NULL경우 JSON 배열의 요소를 생략합니다. 이 옵션의 기본 설정은 ABSENT ON NULL입니다.
반환 값
nvarchar(max) 형식의 유효한 JSON 배열 문자열을 반환합니다.
RETURNING json 옵션이 포함된 경우 JSON 배열이 json 형식으로 반환됩니다.
JSON_ARRAY 함수의 출력에 나타나는 자세한 내용은 다음 문서를 참조하세요.
| 조항 | Description |
|---|---|
| FOR JSON이 SQL Server 데이터 형식을 JSON 데이터 형식으로 변환하는 방법 |
JSON_ARRAY 함수는 이 FOR JSON 문서에 설명된 규칙을 사용하여 JSON 배열 출력에서 SQL 데이터 형식을 JSON 형식으로 변환합니다. |
| FOR JSON이 특수 문자 및 컨트롤 문자를 이스케이프하는 방법 |
JSON_ARRAY 함수는 특수 문자를 이스케이프하고 JSON 출력의 제어 문자를 이 FOR JSON 문서에서 설명하는 대로 표시합니다. |
예제
예 1
다음 예에서는 빈 JSON 배열을 반환합니다.
SELECT JSON_ARRAY();
결과
[]
예제 2
다음 예제에서는 네 개의 요소가 있는 JSON 배열을 반환합니다.
SELECT JSON_ARRAY('a', 1, 'b', 2);
결과
["a",1,"b",2]
예제 3
다음 예제에서는 입력 값 중 하나가 NULL때문에 세 개의 요소가 있는 JSON 배열을 반환합니다.
json_null_clause 생략되고 이 옵션의 기본값은 ABSENT ON NULLNULL 입력 중 하나의 값이 JSON null 값으로 변환되지 않습니다.
SELECT JSON_ARRAY('a', 1, 'b', NULL);
결과
["a",1,"b"]
예시 4
다음 예제에서는 네 개의 요소가 있는 JSON 배열을 반환합니다. 입력의 SQL NULL ON NULL 값이 JSON 배열의 JSON null 값으로 변환되도록 NULL 옵션이 지정됩니다.
SELECT JSON_ARRAY('a', 1, NULL, 2 NULL ON NULL);
결과
["a",1,null,2]
예시 5
다음 예제에서는 두 요소가 있는 JSON 배열을 반환합니다. 한 요소에는 JSON 문자열이 포함되고 다른 요소에는 JSON 개체가 포함됩니다.
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1));
결과
["a",{"name":"value","type":1}]
예제 6
다음 예제에서는 세 개의 요소가 있는 JSON 배열을 반환합니다. 한 요소는 JSON 문자열을 포함하고, 다른 요소는 JSON 개체를 포함하고, 다른 요소는 JSON 배열을 포함합니다.
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1), JSON_ARRAY(1, NULL, 2 NULL ON NULL));
결과
["a",{"name":"value","type":1},[1,null,2]]
예제 7
다음 예제에서는 변수 또는 SQL 식으로 지정된 입력이 있는 JSON 배열을 반환합니다.
DECLARE @id_value AS NVARCHAR (64) = NEWID();
SELECT JSON_ARRAY(1, @id_value, (SELECT @@SPID));
결과
[1,"4BEA4F9F-D169-414F-AF99-9270FDB2EA62",55]
예제 8
다음 예제에서는 쿼리에서 행당 JSON 배열을 반환합니다.
SELECT s.session_id,
JSON_ARRAY(s.host_name, s.program_name, s.client_interface_name)
FROM sys.dm_exec_sessions AS s
WHERE s.is_user_process = 1;
결과
| session_id | info |
|---|---|
| 52 | ["WIN16-VM","Microsoft SQL Server Management Studio - Query",".Net SqlClient Data Provider"] |
| 55 | ["WIN16-VM","Microsoft SQL Server Management Studio - Query",".Net SqlClient Data Provider"] |
| 56 | ["WIN19-VM","SQLServerCEIP",".Net SqlClient Data Provider"] |
예제 9
다음 예제에서는 JSON 배열을 json 형식으로 반환합니다.
SELECT JSON_ARRAY(1 RETURNING JSON);
결과
[1]