Partager via


Utiliser OPENJSON avec le schéma par défaut

S’applique à : SQL Server 2016 (13.x) et versions ultérieures Azure SQL Database Azure SQL Managed Instance Azure 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’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é Valeur
name 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":"Great Britain" } 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 » (Fabricant) et « Quality » (Qualité). L’exemple crée un rapport qui relie chaque ligne de commande client au motif de vente associé en développant le tableau JSON de motifs de vente comme si les motifs étaient stockés 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)