Delen via


OPENJSON gebruiken met het standaardschema

van toepassing op: SQL Server 2016 (13.x) en hoger Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics-

Gebruik OPENJSON- 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 volgen enkele voorbeelden die gebruikmaken van OPENJSON- 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}') 

resultaten

Sleutel Waarde
naam John
achternaam Voedster
leeftijd 45

Voorbeeld: elk element van een matrix retourneren

Query

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

resultaten

Sleutel Waarde
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')

resultaten

Sleutel Waarde Type
type 1 0
adres { "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 SQL Server en Azure SQL Database

Microsoft-video's

Zie de volgende video's voor een visuele inleiding tot de ingebouwde JSON-ondersteuning in SQL Server en Azure SQL Database:

Zie ook

OPENJSON (Transact-SQL)