Partager via


JSON_ARRAY (Transact-SQL)

s’applique à :SQL ServerAzure SQL Databasepoint de terminaison Azure SQL Managed InstanceSQL Analytics dans Microsoft FabricWarehouse dans Microsoft Fabric

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

Syntaxe

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

Arguments

json_array_value

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 JSON_OBJECT fonction lorsque value_expression 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 omettrea 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). Si l’option RETURNING json est incluse, le tableau JSON est retourné en tant que type json .

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

Article Descriptif
Comment FOR JSON convertit les types de données SQL Server en types de données JSON La fonction JSON_ARRAY utilise les règles décrites dans cet article FOR JSON pour convertir les types de données SQL en types JSON dans la sortie de tableau JSON.
Comment FOR JSON place dans une séquence d’échappement les caractères spéciaux et les caractères de contrôle La fonction JSON_ARRAY met en échappement les caractères spéciaux et représente les caractères de contrôle dans la sortie JSON, comme décrit dans cet article FOR JSON.

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 le json_null_clause est omis et que la valeur par défaut de cette option est ABSENT ON NULL, la NULL valeur 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 sql NULL de 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 AS 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"]

Exemple 9

L’exemple suivant retourne un tableau JSON en tant que type json .

SELECT JSON_ARRAY(1 RETURNING JSON);

Résultat

[1]