JSON_ARRAY (Transact-SQL)

S’applique à : SQL Server 2022 (16.x) Azure SQL Database Azure SQL Managed Instance

Construit le texte du tableau JSON à partir de zéro expression ou plus.

Syntaxe

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

<json_array_value> ::= value_expression

<json_null_clause> ::=
      NULL ON NULL
    | ABSENT ON NULL

Arguments

json_array_value

Est une expression qui définit la valeur de l’élément dans le tableau JSON.

json_null_clause

Peut être utilisé pour contrôler le comportement de la fonction JSON_OBJECT lorsque l'expression_valeur est NULL. L’option NULL ON NULL convertit la valeur NULL SQL en valeur null JSON lors de la génération de la valeur de l’élément dans le tableau JSON. L’option ABSENT ON NULL omet l’élément dans le tableau JSON si la valeur est NULL. La valeur par défaut de cette option est ABSENT ON NULL.

Valeur retournée

Retourne une chaîne de tableau JSON valide de type nvarchar(max).

Pour plus d’informations sur ce que vous voyez dans la sortie de la fonction JSON_ARRAY, consultez les articles suivants :

Exemples

Exemple 1

L’exemple suivant retourne un tableau JSON vide.

SELECT JSON_ARRAY();

Résultat

[]

Exemple 2

L’exemple suivant retourne un tableau JSON avec quatre éléments.

SELECT JSON_ARRAY('a', 1, 'b', 2)

Résultat

["a",1,"b",2]

Exemple 3

L’exemple suivant retourne un tableau JSON avec trois éléments, car l’une des valeurs d’entrée est NULL. Étant donné que json_null_clause est omis et que la valeur par défaut de cette option est ABSENT ON NULL, la valeur NULL dans l’une des entrées n’est pas convertie en valeur null JSON.

SELECT JSON_ARRAY('a', 1, 'b', NULL)

Résultat

["a",1,"b"]

Exemple 4

L’exemple suivant retourne un tableau JSON avec quatre éléments. L’option NULL ON NULL est spécifiée afin que toute valeur NULL SQL dans l’entrée soit convertie en valeur Null JSON dans le tableau JSON.

SELECT JSON_ARRAY('a', 1, NULL, 2 NULL ON NULL)

Résultat

["a",1,null,2]

Exemple 5

L’exemple suivant retourne un tableau JSON avec deux éléments. Un élément contient une chaîne JSON et un autre élément contient un objet JSON.

SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1))

Résultat

["a",{"name":"value","type":1}]

Exemple 6

L’exemple suivant retourne un tableau JSON avec trois éléments. Un élément contient une chaîne JSON, un autre élément contient un objet JSON et un autre élément contient un tableau JSON.

SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1), JSON_ARRAY(1, null, 2 NULL ON NULL))

Résultat

["a",{"name":"value","type":1},[1,null,2]]

Exemple 7

L’exemple suivant retourne un tableau JSON avec les entrées spécifiées sous forme de variables ou d’expressions SQL.

DECLARE @id_value nvarchar(64) = NEWID();
SELECT JSON_ARRAY(1, @id_value, (SELECT @@SPID));

Résultat

[1,"4BEA4F9F-D169-414F-AF99-9270FDB2EA62",55]

Exemple 8

L’exemple suivant retourne un tableau JSON par ligne dans la requête.

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;

Résultat

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