Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2016 (13.x) i nowszych
Azure SQL Database
Azure SQL Managed Instance
Azure 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: