JSON_ARRAY (Transact-SQL)
Si applica a: SQL Server 2022 (16.x) database 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.
Per altre informazioni su quanto visualizzato nell'output della funzione JSON_ARRAY
, vedere gli articoli seguenti:
Come FOR JSON converte i tipi di dati di SQL Server in tipi di dati JSON (SQL Server)
La funzioneJSON_ARRAY
usa le regole descritte in questo articoloFOR JSON
per convertire i tipi di dati SQL in tipi JSON nell'output della matrice JSON.Modalità di escape di FOR JSON di caratteri speciali e caratteri di controllo (SQL Server)
La funzioneJSON_ARRAY
usa sequenze di escape per i caratteri speciali e rappresenta i caratteri di controllo nell'output JSON come descritto in questo articoloFOR JSON
.
Valore restituito
Restituisce una stringa di matrice JSON valida di tipo nvarchar(max).
Osservazioni:
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 elemento contiene un oggetto JSON e un altro elemento contiene 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"] |
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per