Delen via


OPENJSON gebruiken met het standaardschema

Van toepassing op: SQL Server 2016 (13.x) en latere versies Van Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL-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:

  • OPENJSON (Transact-SQL)