Dela via


Använda OPENJSON med standardschemat

Gäller för: SQL Server 2016 (13.x) och senare versioner Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL Database i Förhandsversion av Microsoft Fabric

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 är några exempel som används OPENJSON med standardschemat. Mer information och fler exempel finns i OPENJSON (Transact-SQL).

Exempel – Returnera varje egenskap för ett objekt

Query

SELECT *
FROM OPENJSON('{"name":"John","surname":"Doe","age":45}') 

Results

Key Value
name John
surname Doe
age 45

Exempel – Returnera varje element i en matris

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

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')

Results

Key Value Type
type 1 0
address { "town":"Bristol", "county":"Avon", "country":"Great Britain" } 5
tags [ "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 Database Engine

Microsoft-videor

En visuell introduktion till det inbyggda JSON-stödet finns i följande videor: