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]