Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz 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 nowsze wersje
usługi Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL Database w usłudze Microsoft Fabric
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 użycia OPENJSON z domyślnym schematem. Aby uzyskać więcej informacji i więcej przykładów, zobacz OPENJSON (Transact-SQL).
Przykład — zwraca każdą właściwość obiektu
Query
SELECT *
FROM OPENJSON('{"name":"John","surname":"Doe","age":45}')
Results
| Key | Value |
|---|---|
| name | John |
| surname | Doe |
| age | 45 |
Przykład — zwracanie każdego elementu tablicy
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 |
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')
Results
| Key | Value | Typ |
|---|---|---|
| typ | 1 | 0 |
| address | { "town":"Bristol", "county":"Avon", "country":"Great Britain" } | 5 |
| tags | [ "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 JSON w silniku bazy danych SQL
Klipy wideo firmy Microsoft
Aby zapoznać się z wizualnym wprowadzeniem do wbudowanej obsługi kodu JSON, zobacz następujące wideo: