Udostępnij za pośrednictwem


Użycie OPENJSON ze schematem domyślnym

Dotyczy: SQL Server 2016 (13.x) i nowszych Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Użyj OPENJSON z domyślnym schematem, aby zwrócić tabelę z jednym wierszem dla każdej właściwości obiektu lub dla każdego elementu w tablicy.

Oto kilka przykładów korzystających z OPENJSON ze schematem domyślnym. Aby uzyskać więcej informacji i więcej przykładów, zobacz OPENJSON (Transact-SQL).

Przykład — zwraca każdą właściwość obiektu

Zapytanie

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

wyniki

Klucz Wartość
nazwa John
nazwisko Łania
wiek 45

Przykład — zwracanie każdego elementu tablicy

Zapytanie

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

wyniki

Klucz Wartość
0 en-GB
1 en-UK
2 de-AT
3 es-AR
4 sr-Cyrl

Przykład — konwertowanie kodu JSON na tabelę tymczasową

Poniższe zapytanie zwraca wszystkie właściwości obiektu informacyjnego .

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

wyniki

Klucz Wartość Typ
typ 1 0
adres { "town":"Bristol", "county":"Avon", "country":"Great Britain" } 5
Tagi [ "Sport", "Piłka wodna" ] 4

Przykład — łączenie danych relacyjnych i danych JSON

W poniższym przykładzie tabela SalesOrderHeader ma kolumnę tekstową SalesReason, która zawiera tablicę SalesOrderReasons w formacie JSON. Obiekty SalesOrderReasons zawierają właściwości, takie jak "Manufacturer" i "Quality". W tym przykładzie tworzony jest raport, który łączy każdy wiersz zamówienia sprzedaży z powiązanymi przyczynami sprzedaży, rozszerzając tablicę JSON powodów sprzedaży, tak jakby przyczyny były przechowywane w odrębnej tabeli podrzędnej.

SELECT SalesOrderID,OrderDate,value AS Reason
FROM Sales.SalesOrderHeader
CROSS APPLY OPENJSON(SalesReasons)

W tym przykładzie OPENJSON zwraca tabelę przyczyn sprzedaży, w której przyczyny są wyświetlane jako kolumna z wartościami. Operator CROSS APPLY łączy każdy wiersz zamówienia sprzedaży z wierszami zwracanymi przez funkcję tabelaryczną OPENJSON.

Dowiedz się więcej o formacie JSON w programie SQL Server i usłudze Azure SQL Database

Klipy wideo firmy Microsoft

Aby zapoznać się z wizualnym wprowadzeniem do wbudowanej obsługi kodu JSON w programie SQL Server i usłudze Azure SQL Database, zobacz następujące wideo:

Zobacz też

OPENJSON (Transact-SQL)