Verwenden von OPENJSON mit dem Standardschema

Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse Analytics

Verwenden Sie OPENJSON mit dem Standardschema, um eine Tabelle mit einer Zeile für jede Eigenschaft des Objekts oder für jedes Element im Array zurückzugeben.

Hier ein paar Beispiele, in denen OPENJSON mit dem Standardschema verwendet wird. Weitere Informationen und weitere Beispiele finden Sie unter OPENJSON (Transact-SQL).

Beispiel: Rückgabe jeder Eigenschaft eines Objekts

Abfrage

SELECT *
FROM OPENJSON('{"name":"John","surname":"Doe","age":45}') 

Ergebnisse

Schlüssel Wert
name John
surname Doe
age 45

Beispiel: Rückgabe jedes Element eines Arrays

Abfrage

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

Ergebnisse

Schlüssel Wert
0 en-GB
1 en-UK
2 de-AT
3 es-AR
4 sr-Cyrl

Beispiel: Konvertieren von JSON in eine temporäre Tabelle

Die folgende Abfrage gibt alle Eigenschaften des info -Objekts zurück.

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

Ergebnisse

Schlüssel Wert Typ
Typ 1 0
address { "town":"Bristol", "county":"Avon", "country":"Great Britain" } 5
tags [ "Sport", "Water polo" ] 4

Beispiel: Kombinieren relationale Daten und JSON-Daten

Im folgenden Beispiel hat die SalesOrderHeader-Tabelle eine SalesReason-Textspalte, die ein Array von SalesOrderReasons im JSON-Format enthält. Die SalesOrderReasons-Objekte enthalten Eigenschaften wie "Manufacturer" und "Quality". Im Beispiel wird ein Bericht erstellt, der jede Verkaufsauftragszeile mit den zugehörigen Verkaufsgründen verknüpft, indem das JSON-Array der Verkaufsgründe so erweitert wird, als ob die Gründe in einer separaten untergeordneten Tabelle gespeichert wurden.

SELECT SalesOrderID,OrderDate,value AS Reason
FROM Sales.SalesOrderHeader
CROSS APPLY OPENJSON(SalesReasons)

In diesem Beispiel gibt OPENJSON eine Tabelle mit Verkaufsgründen zurück, in denen die Gründe als Wertspalte angezeigt werden. Der CROSS APPLY-Operator verknüpft jede Verkaufszeile der Bestellung mit den von der OPENJSON-Tabellenwertfunktion zurückgegebenen Zeilen.

Weitere Informationen zu JSON in SQL Server und Azure SQL-Datenbank

Microsoft-Videos

Eine visuelle Einführung in die JSON-Unterstützung, die in SQL Server und Azure SQL-Datenbank integriert ist, finden Sie in den folgenden Videos:

Weitere Informationen

OPENJSON (Transact-SQL)