Извлечение SQL из JSON "объект" - PullRequest
0 голосов
/ 01 апреля 2019

Итак, у меня есть требование извлечь некоторые данные из хранилища JSON, и по большей части все довольно просто с помощью JSONVALUE (), однако некоторые хранилища, похоже, используют более глубокий метод хранения.

Некоторый пример кода;

DECLARE @json NVARCHAR(MAX) = '{
"N.data.-60d8249a-ed12-4f41-98f4-01c910c6b2f4": null,
"R.title": "{\"description\":\"Mr\",\"alternates\":{},\"position\":0}",
"R.gender": "{\"description\":\"Male\",\"alternates\":{},\"position\":1}",
"R.jobTitle": "{\"description\":\"Operations\",\"alternates\":{},\"position\":2}"
}'

Что мне нужно сделать, это извлечь аспект «описание» из каждого ключа.Например, «R.title» дал бы мне «Мистер» и т. Д.

В идеале я мог бы извлекать конкретный ключ каждый раз, используя подход с использованием параметров;

DECLARE @id nvarchar(200) = 'R.title'
SELECT  
*  
FROM OPENJSON(@json, concat('$."',@id,'"')) AS a

Есть ли правильный путь?сделать это, не используя противные методы substring ()?

Спасибо!

Using;

Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64)   Aug 22 2017 17:04:49   Copyright (C) 2017 Microsoft Corporation  Express Edition (64-bit) on Windows Server 2012 R2 Datacenter 6.3 <X64> (Build 9600: ) (Hypervisor) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...