Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2016 (13.x) en latere versies
Van Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-database in Microsoft Fabric Preview
Gebruik OPENJSON dit met het standaardschema om een tabel met één rij te retourneren voor elke eigenschap van het object of voor elk element in de matrix.
Hier zijn enkele voorbeelden die OPENJSON gebruiken met het standaardschema. Zie OPENJSON (Transact-SQL)voor meer informatie en meer voorbeelden.
Voorbeeld: elke eigenschap van een object retourneren
Query
SELECT *
FROM OPENJSON('{"name":"John","surname":"Doe","age":45}')
Results
| Key | Value |
|---|---|
| name | John |
| surname | Doe |
| age | 45 |
Voorbeeld: elk element van een matrix retourneren
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 |
Voorbeeld: JSON converteren naar een tijdelijke tabel
De volgende query retourneert alle eigenschappen van het info-object.
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":"Great Britain" } | 5 |
| tags | [ "Sport", "Waterpolo" ] | 4 |
Voorbeeld: relationele gegevens en JSON-gegevens combineren
In het volgende voorbeeld heeft de tabel SalesOrderHeader een kolom SalesReason-tekst die een matrix van SalesOrderReasons in JSON-indeling bevat. De objecten SalesOrderReasons bevatten eigenschappen zoals 'Fabrikant' en 'Kwaliteit'. In het voorbeeld wordt een rapport gemaakt dat elke rij met verkooporders koppelt aan de gerelateerde verkoopredenen door de JSON-matrix met verkoopredenen uit te breiden alsof de redenen zijn opgeslagen in een afzonderlijke onderliggende tabel.
SELECT SalesOrderID,OrderDate,value AS Reason
FROM Sales.SalesOrderHeader
CROSS APPLY OPENJSON(SalesReasons)
In dit voorbeeld retourneert OPENJSON een tabel met verkoopredenen waarin de redenen worden weergegeven als de waardekolom. De operator CROSS APPLY voegt elke rij met verkooporders toe aan de rijen die worden geretourneerd door de functie OPENJSON-tabelwaarde.
Meer informatie over JSON in de SQL Database Engine
video's van Microsoft
Zie de volgende video's voor een visuele inleiding tot de ingebouwde JSON-ondersteuning: