JSON_ARRAY (Transact-SQL)
van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL Analytics-eindpunt in Microsoft FabricWarehouse in Microsoft Fabric
Hiermee maakt u JSON-matrixtekst van nul of meer expressies.
Syntaxis
JSON_ARRAY ( [ <json_array_value> [,...n] ] [ <json_null_clause> ] )
<json_array_value> ::= value_expression
<json_null_clause> ::=
NULL ON NULL
| ABSENT ON NULL
Argumenten
json_array_value
Is een expressie die de waarde van het element in de JSON-matrix definieert.
json_null_clause
Kan worden gebruikt om het gedrag van JSON_OBJECT
functie te bepalen wanneer value_expression NULL is. De optie NULL ON NULL
de SQL-NULL
-waarde converteert naar een JSON-null
-waarde bij het genereren van de waarde van het element in de JSON-matrix. Met de optie ABSENT ON NULL
wordt het element in de JSON-matrix weggelaten als de waarde NULL is. De standaardinstelling voor deze optie is ABSENT ON NULL
.
Retourwaarde
Retourneert een geldige JSON-matrixtekenreeks van nvarchar(max) type.
Zie de volgende artikelen voor meer informatie over wat u ziet in de uitvoer van de functie JSON_ARRAY
:
How FOR JSON SQL Server-gegevenstypen converteert naar JSON-gegevenstypen (SQL Server)
DeJSON_ARRAY
-functie gebruikt de regels die in ditFOR JSON
artikel worden beschreven om SQL-gegevenstypen te converteren naar JSON-typen in de uitvoer van de JSON-matrix.How FOR JSON escapes voor speciale tekens en besturingstekens (SQL Server)
DeJSON_ARRAY
functie escapet speciale tekens en vertegenwoordigt besturingstekens in de JSON-uitvoer, zoals beschreven in ditFOR JSON
artikel.
Voorbeelden
Voorbeeld 1
In het volgende voorbeeld wordt een lege JSON-matrix geretourneerd.
SELECT JSON_ARRAY();
resultaat
[]
Voorbeeld 2
In het volgende voorbeeld wordt een JSON-matrix met vier elementen geretourneerd.
SELECT JSON_ARRAY('a', 1, 'b', 2)
resultaat
["a",1,"b",2]
Voorbeeld 3
In het volgende voorbeeld wordt een JSON-matrix met drie elementen geretourneerd, omdat een van de invoerwaarden NULL is. Omdat de json_null_clause wordt weggelaten en de standaardwaarde voor deze optie AFWEZIG IS OP NULL, wordt de NULL-waarde in een van de invoerwaarden niet geconverteerd naar een JSON-null-waarde.
SELECT JSON_ARRAY('a', 1, 'b', NULL)
resultaat
["a",1,"b"]
Voorbeeld 4
In het volgende voorbeeld wordt een JSON-matrix met vier elementen geretourneerd. De optie NULL ON NULL wordt opgegeven, zodat elke SQL NULL-waarde in de invoer wordt geconverteerd naar JSON Null-waarde in de JSON-matrix.
SELECT JSON_ARRAY('a', 1, NULL, 2 NULL ON NULL)
resultaat
["a",1,null,2]
Voorbeeld 5
In het volgende voorbeeld wordt een JSON-matrix met twee elementen geretourneerd. Eén element bevat een JSON-tekenreeks en een ander element bevat een JSON-object.
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1))
resultaat
["a",{"name":"value","type":1}]
Voorbeeld 6
In het volgende voorbeeld wordt een JSON-matrix met drie elementen geretourneerd. Eén element bevat een JSON-tekenreeks, een ander element bevat een JSON-object & een ander element een JSON-matrix bevat.
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1), JSON_ARRAY(1, null, 2 NULL ON NULL))
resultaat
["a",{"name":"value","type":1},[1,null,2]]
Voorbeeld 7
In het volgende voorbeeld wordt een JSON-matrix geretourneerd met de invoer die is opgegeven als variabelen of SQL-expressies.
DECLARE @id_value nvarchar(64) = NEWID();
SELECT JSON_ARRAY(1, @id_value, (SELECT @@SPID));
resultaat
[1,"4BEA4F9F-D169-414F-AF99-9270FDB2EA62",55]
Voorbeeld 8
In het volgende voorbeeld wordt een JSON-matrix per rij in de query geretourneerd.
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;
resultaat
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"] |
Verwante inhoud
- JSON-gegevens in SQL Server