Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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: