Verwenden von OPENJSON mit dem Standardschema
Gilt für: SQL Server 2016 (13.x) und höher
Azure SQL-Datenbank
Azure SQL Managed Instance
Azure 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 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 |
Nachname | 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 | type |
---|---|---|
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, z. B. „Manufacturer“ und „Quality“. Das Beispiel erstellt einen Bericht, der jede Zeile der Bestellung und die zugehörigen Verkaufsgründe verknüpft, indem das JSON-Array von Verkaufsgründen erweitert wird, als wären die Gründe in einer separaten untergeordneten Tabelle gespeichert.
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: