Bagikan melalui


Menggunakan OPENJSON dengan Skema Default

Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL database di Microsoft Fabric

Gunakan OPENJSON dengan skema default untuk mengembalikan tabel dengan satu baris untuk setiap properti objek atau untuk setiap elemen dalam array.

Berikut adalah beberapa contoh yang digunakan OPENJSON dengan skema default. Untuk informasi selengkapnya dan contoh lainnya, lihat OPENJSON (Transact-SQL).

Contoh - Mengembalikan setiap properti objek

Query

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

Results

Key Value
name John
surname Doe
age 45

Contoh - Mengembalikan setiap elemen array

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

Contoh - Mengonversi JSON ke tabel sementara

Kueri berikut mengembalikan semua properti objek info .

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
jenis 1 0
address { "town":"Bristol", "county":"Avon", "country":"Great Britain" } 5
tags [ "Olahraga", "Polo air" ] 4

Contoh - Menggabungkan data relasional dan data JSON

Dalam contoh berikut, tabel SalesOrderHeader memiliki kolom teks SalesReason yang berisi array SalesOrderReasons dalam format JSON. Objek SalesOrderReasons berisi properti seperti "Produsen" dan "Kualitas." Contoh ini membuat laporan yang menghubungkan setiap baris pesanan penjualan ke alasan penjualan yang sesuai dengan memperluas array JSON dari alasan penjualan, seolah-olah alasan tersebut disimpan dalam tabel anak yang terpisah.

SELECT SalesOrderID,OrderDate,value AS Reason
FROM Sales.SalesOrderHeader
CROSS APPLY OPENJSON(SalesReasons)

Dalam contoh ini, OPENJSON mengembalikan tabel alasan penjualan di mana alasan muncul sebagai kolom nilai. Operator CROSS APPLY menggabungkan setiap baris pesanan penjualan ke baris yang dikembalikan oleh fungsi bernilai tabel OPENJSON.

Pelajari selengkapnya tentang JSON di SQL Database Engine

Video-Video dari Microsoft

Untuk pengenalan visual dukungan JSON bawaan, lihat video berikut ini: