Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
применяется:SQL Server
Базе данных SQL Azure
конечная точка
аналитики SQL Azure в хранилище
Microsoft Fabric в Microsoft Fabric
Создает текст массива 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_expressionNULL.
NULL ON NULL Параметр преобразует значение SQL NULL в значение JSON NULL при создании значения элемента в массиве JSON. Параметр ABSENT ON NULL опустит элемент в массиве JSON, если значение NULL. Параметр по умолчанию для этого параметра.ABSENT ON NULL
Возвращаемое значение
Возвращает допустимую строку массива JSON типа nvarchar(max ).
RETURNING json Если параметр включен, массив JSON возвращается в виде типа JSON.
Дополнительные сведения о выходных данных функции JSON_ARRAY см. в следующих статьях.
| Article | Description |
|---|---|
| Как FOR JSON преобразует типы данных SQL Server в типы данных JSON | Функция JSON_ARRAY использует правила, описанные в статье FOR JSON, для преобразования типов данных SQL в типы JSON в выходных данных массива 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
В следующем примере возвращается массив JSON с тремя элементами, так как одно из входных значений — NULL. Так как json_null_clause опущен, а для этого параметра ABSENT ON NULLиспользуется значение по умолчанию, NULL значение в одном из входных данных не преобразуется в значение NULL JSON.
SELECT JSON_ARRAY('a', 1, 'b', NULL);
Результат
["a",1,"b"]
Пример 4
В следующем примере возвращается массив JSON с четырьмя элементами. Параметр NULL ON NULL указан таким образом, чтобы любое значение SQL NULL входных данных было преобразовано в значение NULL JSON в массиве JSON.
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
В следующем примере возвращается массив JSON с входными данными, указанными в виде переменных или выражений SQL.
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]