Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
ponto de extremidade de análise SQL no Microsoft Fabric
Warehouse no Microsoft Fabric
Constrói texto de matriz JSON a partir de zero ou mais expressões.
Sintaxe
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
Argumentos
json_array_value
Uma expressão que define o valor do elemento na matriz JSON.
json_null_clause
Pode ser usado para controlar o comportamento de JSON_OBJECT função quando value_expression é NULL. A opção NULL ON NULL converte o valor NULL SQL em um valor JSON NULL ao gerar o valor do elemento na matriz JSON. A opção ABSENT ON NULL omitirá o elemento na matriz JSON se o valor for NULL. A configuração padrão para essa opção é ABSENT ON NULL.
Valor de retorno
Retorna uma cadeia de caracteres de matriz JSON válida de tipo de nvarchar(max). Se a RETURNING json opção estiver incluída, a matriz JSON será retornada como tipo json .
Para obter mais informações sobre o que você vê na saída da função JSON_ARRAY, consulte os seguintes artigos:
| Artigo | Description |
|---|---|
| Como o FOR JSON converte tipos de dados do SQL Server em tipos de dados JSON | A função JSON_ARRAY usa as regras descritas neste artigo FOR JSON para converter tipos de dados SQL em tipos JSON na saída da matriz JSON. |
| Como FOR JSON escapa de caracteres especiais e caracteres de controle | A função JSON_ARRAY escapa de caracteres especiais e representa caracteres de controle na saída JSON, conforme descrito neste FOR JSON artigo. |
Exemplos
Exemplo 1
O exemplo a seguir retorna uma matriz JSON vazia.
SELECT JSON_ARRAY();
resultado
[]
Exemplo 2
O exemplo a seguir retorna uma matriz JSON com quatro elementos.
SELECT JSON_ARRAY('a', 1, 'b', 2);
resultado
["a",1,"b",2]
Exemplo 3
O exemplo a seguir retorna uma matriz JSON com três elementos, já que um dos valores de entrada é NULL. Como o json_null_clause é omitido e o padrão para essa opção é ABSENT ON NULL, o NULL valor em uma das entradas não é convertido em um valor JSON nulo.
SELECT JSON_ARRAY('a', 1, 'b', NULL);
resultado
["a",1,"b"]
Exemplo 4
O exemplo a seguir retorna uma matriz JSON com quatro elementos. A opção NULL ON NULL é especificada para que qualquer valor de NULL SQL na entrada seja convertido em valor nulo JSON na matriz JSON.
SELECT JSON_ARRAY('a', 1, NULL, 2 NULL ON NULL);
resultado
["a",1,null,2]
Exemplo 5
O exemplo a seguir retorna uma matriz JSON com dois elementos. Um elemento contém uma cadeia de caracteres JSON e outro elemento contém um objeto JSON.
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1));
resultado
["a",{"name":"value","type":1}]
Exemplo 6
O exemplo a seguir retorna uma matriz JSON com três elementos. Um elemento contém uma cadeia de caracteres JSON, outro elemento contém um objeto JSON e outro elemento contém uma matriz JSON.
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1), JSON_ARRAY(1, NULL, 2 NULL ON NULL));
resultado
["a",{"name":"value","type":1},[1,null,2]]
Exemplo 7
O exemplo a seguir retorna uma matriz JSON com as entradas especificadas como variáveis ou expressões SQL.
DECLARE @id_value AS NVARCHAR (64) = NEWID();
SELECT JSON_ARRAY(1, @id_value, (SELECT @@SPID));
resultado
[1,"4BEA4F9F-D169-414F-AF99-9270FDB2EA62",55]
Exemplo 8
O exemplo a seguir retorna uma matriz JSON por linha na consulta.
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;
resultado
| session_id | informação |
|---|---|
| 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"] |
Exemplo 9
O exemplo a seguir retorna uma matriz JSON como json type.
SELECT JSON_ARRAY(1 RETURNING JSON);
resultado
[1]