OPENJSON: получение данных и PATH - часть 2
Пересказ статьи Marty Catherall. OPENJSON Getting to the data, and the PATH – PART II
Мы видели как вытащить данные из документа JSON в реляционную таблицу, используя явную схему, которая была определена в предложении WITH табличнозначной функции OPENJSON.
Однако в том примере мы использовали выражение PATH, которое бралось из корня документа JSON.
Теперь мы посмотрим на то, как поступить, если требуется взять PATH из определенной точки документа JSON.
Мы используем следующий простой документ, который содержит один объект
Здесь мы хотим начать получение данных из документа, который начинается с пути
$."Configuration Property"
Все, что нам нужно сделать, это определить базовый PATH (начальную точку) в нашем запросе OPENJSON.
Надеюсь, эта статья была вам полезна. Скоро продолжим.
Теперь мы посмотрим на то, как поступить, если требуется взять PATH из определенной точки документа JSON.
Мы используем следующий простой документ, который содержит один объект
{
"Configuration Property": {
"Configuration name": "recovery interval (min)",
"Value": 0,
"minimum": 0,
"maximum": 32767,
"value_in_use": 0,
"description": "Maximum recovery interval in minutes",
"is_dynamic": true,
"is_advanced": true
}
}
Здесь мы хотим начать получение данных из документа, который начинается с пути
$."Configuration Property"
Все, что нам нужно сделать, это определить базовый PATH (начальную точку) в нашем запросе OPENJSON.
DECLARE @json NVARCHAR(MAX) =
N'
{
"Configuration Property": {
"Configuration name": "recovery interval (min)",
"Value": 0,
"minimum": 0,
"maximum": 32767,
"value_in_use": 0,
"description": "Maximum recovery interval in minutes",
"is_dynamic": true,
"is_advanced": true
}
}
';
SELECT
[Configuration name]
,[Value]
,[minimum]
,[maximum]
,[value_in_use]
,[description]
,[is_dynamic]
,[is_advanced]
FROM
OPENJSON(@json, '$."Configuration Property"')
WITH
(
[Configuration name] NVARCHAR(35)
,[Value] NVARCHAR(100)
,[minimum] NVARCHAR(100)
,[maximum] NVARCHAR(100)
,[value_in_use] NVARCHAR(100)
,[description] NVARCHAR(100)
,[is_dynamic] BIT
,[is_advanced] BIT
);
Надеюсь, эта статья была вам полезна. Скоро продолжим.
Обратные ссылки
Автор не разрешил комментировать эту запись
Комментарии
Показывать комментарии Как список | Древовидной структурой