Použití OPENJSON s výchozím schématem
platí pro: SQL Server 2016 (13.x) a novější
Azure SQL Database
azure SQL Managed Instance
azure Synapse Analytics
Použijte OPENJSON s výchozím schématem k vrácení tabulky s jedním řádkem pro každou vlastnost objektu nebo pro každý prvek v poli.
Tady je několik příkladů, které používají OPENJSON s výchozím schématem. Další informace a příklady naleznete v tématu OPENJSON (Transact-SQL).
Příklad – vrácení každé vlastnosti objektu
dotazu
SELECT *
FROM OPENJSON('{"name":"John","surname":"Doe","age":45}')
výsledky
Klíč | Hodnota |
---|---|
Jméno | John |
příjmení | Doe |
věk | 45 |
Příklad – vrácení každého prvku pole
dotazu
SELECT [key],value
FROM OPENJSON('["en-GB", "en-UK","de-AT","es-AR","sr-Cyrl"]')
výsledky
Klíč | Hodnota |
---|---|
0 | en-GB |
1 | en-UK |
2 | de-AT |
3 | es-AR |
4 | sr-Cyrl |
Příklad – Převod JSON na dočasnou tabulku
Následující dotaz vrátí všechny vlastnosti informace objektu.
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')
výsledky
Klíč | Hodnota | Typ |
---|---|---|
typ | 1 | 0 |
adresa | { "town":"Bristol", "county":"Avon", "country":"Velká Británie" } | 5 |
štítky | [ "Sport", "Vodní polo" ] | 4 |
Příklad – Kombinování relačních dat a dat JSON
V následujícím příkladu má tabulka SalesOrderHeader textový sloupec SalesReason, který obsahuje pole SalesOrderReasons ve formátu JSON. Objekty SalesOrderReasons obsahují vlastnosti, jako jsou Manufacturer (Výrobce) a Quality (Kvalita). Příklad vytvoří sestavu, která spojí každý řádek prodejní objednávky se souvisejícími prodejními důvody tak, že rozšíří JSON pole důvodů prodeje, jako by důvody byly uloženy v samostatné podřízené tabulce.
SELECT SalesOrderID,OrderDate,value AS Reason
FROM Sales.SalesOrderHeader
CROSS APPLY OPENJSON(SalesReasons)
V tomto příkladu vrátí funkce OPENJSON tabulku důvodů prodeje, ve které se důvody zobrazují jako sloupec hodnoty. Operátor CROSS APPLY spojí každý řádek prodejní objednávky s řádky vrácenými tabulkově hodnotovou funkcí OPENJSON.
Další informace o FORMÁTU JSON v SQL Serveru a Azure SQL Database
Microsoft videa
Pro vizuální úvod do vestavěné podpory JSON v SQL Serveru a Azure SQL Database si prohlédněte následující videa: