Compartilhar via


JSON_ARRAY (Transact-SQL)

Aplica-se a: SQL Server 2022 (16.x) Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Constrói o texto da matriz JSON com base em zero ou mais expressões.

Sintaxe

JSON_ARRAY ( [ <json_array_value> [,...n] ] [ <json_null_clause> ]  )  

<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 da função JSON_OBJECT quando value_expression é NULL. A opção NULL ON NULL converte o valor SQL NULL em um valor null JSON 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 retornado

Retorna uma cadeia de caracteres de matriz JSON válida do tipo nvarchar(max).

Para obter mais informações sobre o que você vê na saída da função JSON_ARRAY, confira os seguintes artigos:

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, pois um dos valores de entrada é NULL. Como o json_null_clause foi omitido e o padrão para essa opção é ABSENT ON NULL, o valor NULL em uma das entradas não será convertido em um valor nulo JSON.

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 SQL NULL 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 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ções
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"]