Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server 2016 (13.x) und höhere Versionen
der Azure SQL-Datenbank
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-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: