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:

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