Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: Az SQL Server 2016 (13.x) és újabb verziói
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL Database a Microsoft Fabricben
Az OPENJSON alapértelmezett sémával egy olyan táblát ad vissza, amely az objektum minden tulajdonságához vagy a tömb minden eleméhez egy sort tartalmaz.
Íme néhány példa, amelyek az alapértelmezett sémát használják OPENJSON . További információ és további példák: OPENJSON (Transact-SQL).
Példa – Objektum minden tulajdonságának visszaadása
Query
SELECT *
FROM OPENJSON('{"name":"John","surname":"Doe","age":45}')
Results
| Key | Value |
|---|---|
| name | John |
| surname | Doe |
| age | 45 |
Példa – Tömb minden elemének visszaadása
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 |
Példa – JSON konvertálása ideiglenes táblává
Az alábbi lekérdezés a információs objektum minden tulajdonságát visszaadja.
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 | Típus |
|---|---|---|
| típus | 1 | 0 |
| address | { "town":"Bristol", "county":"Avon", "country":"Nagy-Britannia" } | 5 |
| tags | [ "Sport", "Vízilabda" ] | 4 |
Példa – Relációs adatok és JSON-adatok egyesítése
Az alábbi példában a SalesOrderHeader tábla egy SalesReason szöveges oszlopot tartalmaz, amely egy SalesOrderReasons tömböt tartalmaz JSON formátumban. A SalesOrderReasons objektumok olyan tulajdonságokat tartalmaznak, mint a "Gyártó" és a "Minőség". A példa létrehoz egy jelentést, amely minden értékesítési rendeléssort összekapcsol a kapcsolódó értékesítési okokhoz az értékesítési okok JSON-tömbjének kibontásával, mintha az okok egy külön gyermektáblában lennének tárolva.
SELECT SalesOrderID,OrderDate,value AS Reason
FROM Sales.SalesOrderHeader
CROSS APPLY OPENJSON(SalesReasons)
Ebben a példában az OPENJSON egy értékesítési okokból álló táblát ad vissza, amelyben az okok értékoszlopként jelennek meg. A CROSS APPLY operátor az egyes értékesítési rendelési sorokat az OPENJSON táblaértékes függvény által visszaadott sorokhoz illeszti.
További információ a JSON-ról az SQL Database Engine-ben
Microsoft-videók
A beépített JSON-támogatás vizuális bemutatásához tekintse meg az alábbi videókat: