Freigeben über


Verwenden von OPENJSON mit dem Standardschema

Gilt für: SQL Server 2016 (13.x) und höhere Versionen der Azure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsSQL-Datenbank in Microsoft Fabric

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

Hier sind einige Beispiele, die das Standardschema mit OPENJSON verwenden. Weitere Informationen und weitere Beispiele finden Sie unter OPENJSON (Transact-SQL).

Beispiel: Rückgabe jeder Eigenschaft eines Objekts

Query

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

Results

Key Value
name John
surname Doe
age 45

Beispiel: Rückgabe jedes Element eines Arrays

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

Beispiel: Konvertieren von JSON in eine temporäre Tabelle

Die folgende Abfrage gibt alle Eigenschaften des Infoobjekts 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')

Results

Key Value Type
type 1 0
address { "town":"Bristol", "county":"Avon", "country":"Great Britain" } 5
tags [ "Sport", "Wasserball" ] 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 "Hersteller" und "Qualität". Im Beispiel wird ein Bericht erstellt, der jede Kundenauftragszeile 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 wären.

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 im SQL-Datenbankmodul

Microsoft-Videos

Eine visuelle Einführung in die integrierte JSON-Unterstützung finden Sie in den folgenden Videos: