Разобрать JSON в SQL - PullRequest
       3

Разобрать JSON в SQL

0 голосов
/ 16 июня 2020

Я хочу проанализировать один возврат в JSON на несколько строк.

Строка такая -

{"policy_ids":["INZP2981-11000002","INZP-00001786","0AAAA01PC06"]}

Я хочу просто проанализировать это, чтобы это было строка для каждого policy_ids. Я пробовал использовать Open JSON WITH, но продолжаю возвращать значения NULL.

DECLARE @json NVARCHAR(MAX) ;

SET @json = N'{"policy_ids":["INZP2981-11000002","INZP-00001786","0AAAA01PC06"]}' ;

SELECT
    *
FROM
    OPENJSON(@json) 
    WITH (   
              policy_ids   varchar(200) '$.policy_ids' 
 ) 

Помощь приветствуется.

1 Ответ

0 голосов
/ 16 июня 2020

Вам нужен другой оператор для анализа массива $.policy_ids JSON. Вы можете попробовать использовать OPENJSON() со схемой по умолчанию (без предложения WITH). В этом случае результатом является таблица со столбцами key, value и type, а столбец value возвращает значение каждого элемента во входном массиве.

DECLARE @json NVARCHAR(MAX) ;
SET @json = N'{"policy_ids":["INZP2981-11000002","INZP-00001786","0AAAA01PC06"]}' ;

SELECT [value] AS policy_id
FROM OPENJSON(@json, '$.policy_ids') 

Результат:

policy_id
-----------------
INZP2981-11000002
INZP-00001786
0AAAA01PC06

Если вы хотите использовать явную схему, следующий оператор:

SELECT *
FROM OPENJSON(@json, '$.policy_ids') WITH (   
   policy_id varchar(200) '$'
) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...