JSON_ARRAY (Transact-SQL)
gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-analysslutpunkt i Microsoft FabricWarehouse i Microsoft Fabric
Konstruerar JSON-matristext från noll eller fler uttryck.
Syntax
JSON_ARRAY ( [ <json_array_value> [,...n] ] [ <json_null_clause> ] )
<json_array_value> ::= value_expression
<json_null_clause> ::=
NULL ON NULL
| ABSENT ON NULL
Argument
json_array_value
Är ett uttryck som definierar värdet för elementet i JSON-matrisen.
json_null_clause
Kan användas för att styra beteendet för JSON_OBJECT
funktion när value_expression är NULL. Alternativet NULL ON NULL
konverterar SQL-NULL
-värdet till ett JSON-null
-värde när du genererar värdet för elementet i JSON-matrisen. Alternativet ABSENT ON NULL
utelämnar elementet i JSON-matrisen om värdet är NULL. Standardinställningen för det här alternativet är ABSENT ON NULL
.
Returvärde
Returnerar en giltig JSON-matrissträng med nvarchar(max) typ.
Mer information om vad du ser i utdata för funktionen JSON_ARRAY
finns i följande artiklar:
Hur FÖR JSON konverterar SQL Server-datatyper till JSON-datatyper (SQL Server)
FunktionenJSON_ARRAY
använder de regler som beskrivs i den härFOR JSON
artikeln för att konvertera SQL-datatyper till JSON-typer i JSON-matrisens utdata.How FOR JSON escapes special characters and control characters (SQL Server)
FunktionenJSON_ARRAY
undflyr specialtecken och representerar kontrolltecken i JSON-utdata enligt beskrivningen i den härFOR JSON
artikeln.
Exempel
Exempel 1
I följande exempel returneras en tom JSON-matris.
SELECT JSON_ARRAY();
resultat
[]
Exempel 2
I följande exempel returneras en JSON-matris med fyra element.
SELECT JSON_ARRAY('a', 1, 'b', 2)
resultat
["a",1,"b",2]
Exempel 3
I följande exempel returneras en JSON-matris med tre element eftersom ett av indatavärdena är NULL. Eftersom json_null_clause utelämnas och standardvärdet för det här alternativet är FRÅNVARANDE PÅ NULL konverteras inte NULL-värdet i någon av indata till ett JSON-nullvärde.
SELECT JSON_ARRAY('a', 1, 'b', NULL)
resultat
["a",1,"b"]
Exempel 4
I följande exempel returneras en JSON-matris med fyra element. Alternativet NULL ON NULL anges så att alla SQL NULL-värden i indata konverteras till JSON null-värde i JSON-matrisen.
SELECT JSON_ARRAY('a', 1, NULL, 2 NULL ON NULL)
resultat
["a",1,null,2]
Exempel 5
I följande exempel returneras en JSON-matris med två element. Ett element innehåller en JSON-sträng och ett annat element innehåller ett JSON-objekt.
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1))
resultat
["a",{"name":"value","type":1}]
Exempel 6
I följande exempel returneras en JSON-matris med tre element. Ett element innehåller en JSON-sträng, ett annat element innehåller ett JSON-objekt & ett annat element innehåller en JSON-matris.
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1), JSON_ARRAY(1, null, 2 NULL ON NULL))
resultat
["a",{"name":"value","type":1},[1,null,2]]
Exempel 7
I följande exempel returneras en JSON-matris med de indata som anges som variabler eller SQL-uttryck.
DECLARE @id_value nvarchar(64) = NEWID();
SELECT JSON_ARRAY(1, @id_value, (SELECT @@SPID));
resultat
[1,"4BEA4F9F-D169-414F-AF99-9270FDB2EA62",55]
Exempel 8
I följande exempel returneras en JSON-matris per rad i frågan.
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;
resultat
session_id | information |
---|---|
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"] |