Freigeben über


JSON_ARRAY (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceSQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric

Erstellt JSON-Arraytext aus null oder mehr Ausdrücken.

Syntax

JSON_ARRAY ( [ <json_array_value> [ , ...n ] ] [ <json_null_clause> ] [ RETURNING json ] )

<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 definiert.

json_null_clause

Kann verwendet werden, um das Verhalten JSON_OBJECT Funktion zu steuern, wenn value_expressionNULList. 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 wird das Element im JSON-Array weglassen, wenn der Wert NULList. Die Standardeinstellung für diese Option ist ABSENT ON NULL.

Rückgabewert

Gibt eine gültige JSON-Arrayzeichenfolge vom Typ nvarchar(max) zurück. Wenn die RETURNING json Option enthalten ist, wird das JSON-Array als JSON-Typ zurückgegeben.

Weitere Informationen dazu, was in der Ausgabe der JSON_ARRAY-Funktion angezeigt wird, finden Sie in den folgenden Artikeln:

Artikel Description
So konvertiert FOR JSON SQL Server-Datentypen in JSON-Datentypen Die JSON_ARRAY-Funktion verwendet die in diesem FOR JSON-Artikel beschriebenen Regeln, um SQL-Datentypen in JSON-Typen in der JSON-Arrayausgabe zu konvertieren.
So escapet FOR JSON Sonderzeichen und Steuerzeichen Die JSON_ARRAY-Funktion schützt Sonderzeichen und stellt die Steuerzeichen in der JSON-Ausgabe wie in diesem FOR 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 NULList. Da die json_null_clause ausgelassen wird und der Standardwert für diese Option lautet, wird ABSENT ON NULLder NULL Wert in einem der Eingaben nicht in einen JSON-Nullwert 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 jeder SQL-NULL-Wert in der Eingabe in DEN JSON-Nullwert im JSON-Array konvertiert wird.

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 enthält ein JSON-Objekt und ein anderes Element enthält 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 AS 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"]

Beispiel 9

Im folgenden Beispiel wird ein JSON-Array als JSON-Typ zurückgegeben.

SELECT JSON_ARRAY(1 RETURNING JSON);

Ergebnis

[1]