Partager via


Utiliser OPENJSON avec le schéma par défaut

S’applique à : SQL Server 2016 (13.x) et versions ultérieures Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

L’utilisation de OPENJSON avec le schéma par défaut permet de retourner une table comprenant une ligne pour chaque propriété de l’objet ou pour chaque élément du tableau.

Voici quelques exemples d’utilisation de OPENJSON avec le schéma par défaut. Pour plus d’informations et d’autres exemples, consultez OPENJSON (Transact-SQL).

Exemple : retourner chaque propriété d’un objet

Requête

SELECT *
FROM OPENJSON('{"name":"John","surname":"Doe","age":45}') 

Résultats

Clé active
nom John
surname Doe
age 45

Exemple : retourner chaque élément d’un tableau

Requête

SELECT [key],value
FROM OPENJSON('["en-GB", "en-UK","de-AT","es-AR","sr-Cyrl"]') 

Résultats

Clé Valeur
0 en-GB
1 en-UK
2 de-AT
3 es-AR
4 sr-Cyrl

Exemple : convertir des données JSON en table temporaire

La requête suivante retourne toutes les propriétés de l’objet info .

DECLARE @json NVARCHAR(MAX)

SET @json=N'{  
     "info":{    
       "type":1,  
       "address":{    
         "town":"Bristol",  
         "county":"Avon",  
         "country":"Great Britain"  
       },  
       "tags":["Sport", "Water polo"]  
    },  
    "type":"Basic"  
 }'

SELECT *
FROM OPENJSON(@json,N'lax $.info')

Résultats

Clé Valeur Type
type 1 0
address { « town »:"Bristol », « county »:"Avon », « country »:"Grande-Bretagne » } 5
tags [ "Sport", "Water polo" ] 4

Exemple : combiner des données relationnelles et des données JSON

Dans l’exemple suivant, la table SalesOrderHeader a une colonne de texte SalesReason qui contient un tableau d’objets SalesOrderReasons au format JSON. Les objets SalesOrderReasons contiennent des propriétés telles que « Manufacturer » et « Quality ». L’exemple crée un rapport qui joint chaque ligne de commande aux raisons de vente associées en développant le tableau JSON des raisons de vente comme si les raisons étaient stockées dans une table enfant distincte.

SELECT SalesOrderID,OrderDate,value AS Reason
FROM Sales.SalesOrderHeader
CROSS APPLY OPENJSON(SalesReasons)

Dans cet exemple, OPENJSON retourne une table de motifs de vente dans laquelle les motifs forment la colonne de valeurs. L’opérateur CROSS APPLY relie chaque ligne de commande client aux lignes retournées par la fonction table OPENJSON.

En savoir plus sur JSON dans SQL Server et Azure SQL Database

Vidéos Microsoft

Pour obtenir une présentation visuelle de la prise en charge intégrée de JSON dans SQL Server et Azure SQL Database, consultez les vidéos suivantes :

Voir aussi

OPENJSON (Transact-SQL)