Använda OPENJSON med standardschemat
gäller för: SQL Server 2016 (13.x) och senare
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Använd OPENJSON- med standardschemat för att returnera en tabell med en rad för varje egenskap för objektet eller för varje element i matrisen.
Här följer några exempel som använder OPENJSON- med standardschemat. Mer information och fler exempel finns i OPENJSON (Transact-SQL).
Exempel – Returnera varje egenskap för ett objekt
Fråga
SELECT *
FROM OPENJSON('{"name":"John","surname":"Doe","age":45}')
resultat
Nyckel | Värde |
---|---|
Namn | John |
efternamn | Hind |
ålder | 45 |
Exempel – Returnera varje element i en matris
Fråga
SELECT [key],value
FROM OPENJSON('["en-GB", "en-UK","de-AT","es-AR","sr-Cyrl"]')
resultat
Nyckel | Värde |
---|---|
0 | en-GB |
1 | en-UK |
2 | de-AT |
3 | es-AR |
4 | sr-Cyrl |
Exempel – Konvertera JSON till en tillfällig tabell
Följande fråga returnerar alla egenskaper för -informationen-objektet.
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')
Resultat
Nyckel | Värde | Typ |
---|---|---|
typ | 1 | 0 |
adress | { "town":"Bristol", "county":"Avon", "country":"Great Britain" } | 5 |
Taggar | [ "Sport", "Vattenpolo" ] | 4 |
Exempel – Kombinera relationsdata och JSON-data
I följande exempel har tabellen SalesOrderHeader textkolumnen SalesReason som innehåller en matris med SalesOrderReasons i JSON-format. SalesOrderReasons-objekten innehåller egenskaper som "Tillverkare" och "Kvalitet". Exemplet skapar en rapport som kopplar varje försäljningsorderrad till relaterade försäljningsorsaker genom att expandera JSON-matrisen med försäljningsorsaker som om orsakerna lagrades i en separat underordnad tabell.
SELECT SalesOrderID,OrderDate,value AS Reason
FROM Sales.SalesOrderHeader
CROSS APPLY OPENJSON(SalesReasons)
I det här exemplet returnerar OPENJSON en tabell med försäljningsorsaker där orsakerna visas som värdekolumn. CROSS APPLY-operatorn kopplar varje försäljningsorderrad till de rader som returneras av tabellvärdesfunktionen OPENJSON.
Läs mer om JSON i SQL Server och Azure SQL Database
Microsoft-videor
En visuell introduktion till det inbyggda JSON-stödet i SQL Server och Azure SQL Database finns i följande videor: