Dela via


Använda OPENJSON med standardschemat

gäller för: SQL Server 2016 (13.x) och senare Azure SQL DatabaseAzure SQL Managed InstanceAzure 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:

Se även

OPENJSON (Transact-SQL)