Использование OPENJSON со схемой по умолчанию

Область применения: SQL Server 2016 (13.x) и более поздних версий Управляемого экземпляраБазы данныхSQL Azure Azure Synapse Analytics

Использование OPENJSON со схемой по умолчанию возвращает таблицу, содержащую одну строку для каждого свойства объекта или для каждого элемента в массиве.

Ниже приведены несколько примеров использования OPENJSON со схемой по умолчанию. Дополнительные сведения и дополнительные примеры см. в разделе OPENJSON (Transact-SQL).

Пример. Возвращение каждого свойства объекта

Запрос

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

Результаты

Ключ Значение
name Джон
surname Доу
возраст 45

Пример. Возвращение каждого элемента массива

Запрос

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

Результаты

Ключ значение
0 en-GB
1 en-UK
2 de-AT
3 es-AR
4 sr-Cyrl

Пример. Преобразование JSON во временную таблицу

Следующий запрос возвращает все свойства объекта info .

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

Результаты

Ключ значение Вид
тип 1 0
address { "город":"Бристоль", "каунти":"Avon", "страна":"Великобритания" } 5
tags [ "Sport", "Water polo" ] 4

Пример. Объединение реляционных данных и данных JSON

В следующем примере таблица SalesOrderHeader имеет текстовый столбец SalesReason, содержащий массив SalesOrderReasons в формате JSON. Объекты SalesOrderReasons содержат такие свойства, как "Производитель" и "Качество". В примере создается отчет, который объединяет каждую строку заказа на продажу с соответствующими причинами продаж путем расширения массива причин продаж JSON, как если бы причины хранились в отдельной дочерней таблице.

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

В этом примере OPENJSON возвращает таблицу причин покупки, в которой причины отображаются как столбец значений. Оператор CROSS APPLY соединяет каждую строку заказа на продажу со строками, возвращенными функцией с табличным значением OPENJSON.

Дополнительные сведения о JSON в SQL Server и базе данных SQL Azure

Видео Майкрософт

Наглядные инструкции по встроенной поддержке JSON в SQL Server и базе данных SQL Azure см. в следующих видео.

См. также

OPENJSON (Transact-SQL)