Menggunakan OPENJSON dengan Skema Default

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

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 menggunakan OPENJSON dengan skema default. Untuk informasi selengkapnya dan contoh lainnya, lihat OPENJSON (Transact-SQL).

Contoh - Mengembalikan setiap properti objek

Kueri

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

Hasil

Kunci Nilai
nama John
surname Doe
usia 45

Contoh - Mengembalikan setiap elemen array

Kueri

SELECT [key],value
FROM OPENJSON('["en-GB", "en-UK","de-AT","es-AR","sr-Cyrl"]') 

Hasil

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

Hasil

Kunci Nilai Jenis
jenis 1 0
address { "town":"Bristol", "county":"Avon", "country":"Great Britain" } 5
tag [ "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 membuat laporan yang menggabungkan setiap baris pesanan penjualan ke alasan penjualan terkait dengan memperluas array JSON alasan penjualan seolah-olah alasan disimpan dalam tabel anak 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 Server dan Azure SQL Database

Video Microsoft

Untuk pengenalan visual dukungan JSON bawaan di SQL Server dan Azure SQL Database, lihat video berikut ini:

Lihat Juga

OPENJSON (Transact-SQL)