Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2016 (13.x) dan versi yang
lebih baru Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL 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: