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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für