Sdílet prostřednictvím


Použití OPENJSON s výchozím schématem

platí pro: SQL Server 2016 (13.x) a novější Azure SQL Databaseazure SQL Managed Instanceazure 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:

Viz také

OPENJSON (Transact-SQL)