Использование 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 см. в следующих видео.
- JSON as a bridge between NoSQL and relational worlds (JSON как мост между NoSQL и реляционными решениями)
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по