Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à : SQL Server 2016 (13.x) et versions
ultérieures Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL database in Microsoft Fabric
Utilisez OPENJSON le schéma par défaut pour renvoyer une table avec une ligne pour chaque propriété de l’objet ou pour chaque élément du tableau.
Voici quelques exemples qui utilisent 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
Query
SELECT *
FROM OPENJSON('{"name":"John","surname":"Doe","age":45}')
Results
| Key | Value |
|---|---|
| name | John |
| surname | Doe |
| age | 45 |
Exemple : retourner chaque élément d’un tableau
Query
SELECT [key],value
FROM OPENJSON('["en-GB", "en-UK","de-AT","es-AR","sr-Cyrl"]')
Results
| Key | Value |
|---|---|
| 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 d’informations .
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')
Results
| Key | Value | 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 » (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 le moteur de base de données SQL
Vidéos Microsoft
Pour une présentation visuelle de la prise en charge JSON intégrée, consultez les vidéos suivantes :