Condividi tramite


JSON_ARRAY (Transact-SQL)

Si applica a: SQL Server 2022 (16.x) database SQL di Azure Istanza gestita di SQL di Azure

Costruisce il testo della matrice JSON da zero o più espressioni.

Sintassi

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

<json_array_value> ::= value_expression

<json_null_clause> ::=
      NULL ON NULL
    | ABSENT ON NULL

Argomenti

json_array_value

Espressione che definisce il valore dell'elemento nella matrice JSON.

json_null_clause

Può essere usato per controllare il comportamento della funzione JSON_OBJECT quando value_expression è NULL. L'opzione NULL ON NULL converte il valore SQL NULL in un valore JSON null durante la generazione del valore dell'elemento nella matrice JSON. Se il valore è NULL, l'opzione ABSENT ON NULL ometterà l'elemento nella matrice JSON. L'impostazione predefinita per questa opzione è ABSENT ON NULL.

Valore restituito

Restituisce una stringa di matrice JSON valida di tipo nvarchar(max).

Per altre informazioni su quanto visualizzato nell'output della funzione JSON_ARRAY, vedere gli articoli seguenti:

Esempi

Esempio 1

L'esempio seguente restituisce una matrice JSON vuota.

SELECT JSON_ARRAY();

Risultato

[]

Esempio 2

Nell'esempio seguente viene restituita una matrice JSON con quattro elementi.

SELECT JSON_ARRAY('a', 1, 'b', 2)

Risultato

["a",1,"b",2]

Esempio 3

Nell'esempio seguente viene restituita una matrice JSON con tre elementi poiché uno dei valori di input è NULL. Poiché json_null_clause viene omessa e l'impostazione predefinita per questa opzione è ABSENT ON NULL, in uno degli input il valore NULL non viene convertito in un valore null JSON.

SELECT JSON_ARRAY('a', 1, 'b', NULL)

Risultato

["a",1,"b"]

Esempio 4

Nell'esempio seguente viene restituita una matrice JSON con quattro elementi. Viene specificata l'opzione NULL ON NULL, in modo che qualsiasi valore NULL SQL nell'input venga convertito in valore null JSON nella matrice JSON.

SELECT JSON_ARRAY('a', 1, NULL, 2 NULL ON NULL)

Risultato

["a",1,null,2]

Esempio 5

Nell'esempio seguente viene restituita una matrice JSON con due elementi. Un elemento contiene una stringa JSON e un altro un oggetto JSON.

SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1))

Risultato

["a",{"name":"value","type":1}]

Esempio 6

Nell'esempio seguente viene restituita una matrice JSON con tre elementi. Un elemento contiene una stringa JSON, un altro un oggetto JSON e il terzo una matrice JSON.

SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1), JSON_ARRAY(1, null, 2 NULL ON NULL))

Risultato

["a",{"name":"value","type":1},[1,null,2]]

Esempio 7

L'esempio seguente restituisce una matrice JSON con gli input specificati come variabili o espressioni SQL.

DECLARE @id_value nvarchar(64) = NEWID();
SELECT JSON_ARRAY(1, @id_value, (SELECT @@SPID));

Risultato

[1,"4BEA4F9F-D169-414F-AF99-9270FDB2EA62",55]

Esempio 8

L'esempio seguente restituisce una matrice JSON per ogni riga della query.

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;

Risultato

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"]