JSON_ARRAY (Transact-SQL)
Gilt für: SQL Server 2022 (16.x) Azure SQL-Datenbank Azure SQL verwaltete Instanz
Erstellt JSON-Arraytext aus null oder mehr Ausdrücken.
Syntax
JSON_ARRAY ( [ <json_array_value> [,...n] ] [ <json_null_clause> ] )
<json_array_value> ::= value_expression
<json_null_clause> ::=
NULL ON NULL
| ABSENT ON NULL
Argumente
json_array_value
Ein Ausdruck, der den Wert des Elements im JSON-Array bestimmt
json_null_clause
Kann zum Steuern des Verhaltens der Funktion JSON_OBJECT
verwendet werden, wenn value_expression gleich NULL ist. Die Option NULL ON NULL
konvertiert den SQL-NULL
-Wert in einen JSON-null
-Wert, wenn der Wert des Elements im JSON-Array generiert wird. Die Option ABSENT ON NULL
lässt das Element im JSON-Array aus, wenn der Wert NULL ist. Die Standardeinstellung für diese Option ist ABSENT ON NULL
.
Rückgabewert
Gibt eine gültige JSON-Arrayzeichenfolge vom Typ nvarchar(max) zurück.
Weitere Informationen dazu, was in der Ausgabe der JSON_ARRAY
-Funktion angezeigt wird, finden Sie in den folgenden Artikeln:
So konvertiert FOR JSON SQL Server-Datentypen in JSON-Datentypen (SQL Server)
DieJSON_ARRAY
-Funktion verwendet die in diesemFOR JSON
-Artikel beschriebenen Regeln, um SQL-Datentypen in JSON-Typen in der JSON-Arrayausgabe zu konvertieren.Schutz von Sonderzeichen und Steuerzeichen durch FOR JSON (SQL Server)
DieJSON_ARRAY
-Funktion schützt Sonderzeichen und stellt die Steuerzeichen in der JSON-Ausgabe wie in diesemFOR JSON
-Artikel beschrieben dar.
Beispiele
Beispiel 1
Im folgenden Beispiel wird ein leeres JSON-Array zurückgegeben.
SELECT JSON_ARRAY();
Ergebnis
[]
Beispiel 2
Im folgenden Beispiel wird ein JSON-Array mit vier Elementen zurückgegeben.
SELECT JSON_ARRAY('a', 1, 'b', 2)
Ergebnis
["a",1,"b",2]
Beispiel 3
Im folgenden Beispiel wird ein JSON-Array mit drei Elementen zurückgegeben, da einer der Eingabewerte NULL ist. Da json_null_clause ausgelassen wird und die Standardeinstellung für diese Option ABSENT ON NULL lautet, wird der NULL-Wert in einer der Eingaben nicht in einen JSON-NULL-Wert konvertiert.
SELECT JSON_ARRAY('a', 1, 'b', NULL)
Ergebnis
["a",1,"b"]
Beispiel 4
Im folgenden Beispiel wird ein JSON-Array mit vier Elementen zurückgegeben. Die Option NULL ON NULL wird angegeben, sodass alle SQL-NULL-Werte in der Eingabe in einen JSON-NULL-Wert im JSON-Array konvertiert werden.
SELECT JSON_ARRAY('a', 1, NULL, 2 NULL ON NULL)
Ergebnis
["a",1,null,2]
Beispiel 5
Im folgenden Beispiel wird ein JSON-Array mit zwei Elementen zurückgegeben. Ein Element enthält eine JSON-Zeichenfolge, und das andere Element enthält ein JSON-Objekt.
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1))
Ergebnis
["a",{"name":"value","type":1}]
Beispiel 6
Im folgenden Beispiel wird ein JSON-Array mit drei Elementen zurückgegeben. Ein Element enthält eine JSON-Zeichenfolge, ein anderes Element ein JSON-Objekt und das dritte Element ein JSON-Array.
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1), JSON_ARRAY(1, null, 2 NULL ON NULL))
Ergebnis
["a",{"name":"value","type":1},[1,null,2]]
Beispiel 7
Im folgenden Beispiel wird ein JSON-Array mit den Eingaben zurückgegeben, die als Variablen oder SQL-Ausdrücke angegeben sind.
DECLARE @id_value nvarchar(64) = NEWID();
SELECT JSON_ARRAY(1, @id_value, (SELECT @@SPID));
Ergebnis
[1,"4BEA4F9F-D169-414F-AF99-9270FDB2EA62",55]
Beispiel 8
Im folgenden Beispiel wird ein JSON-Array pro Zeile in der Abfrage zurückgegeben.
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;
Ergebnis
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"] |