Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Получить элементы из массива json / 9 сообщений из 9, страница 1 из 1
28.10.2020, 13:07
    #40012591
rigor mortis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить элементы из массива json
Привет
Что-то не гуглится. Есть таблица, одно поле содержит json который содержит массив

{
“Array”[
{“item”:1},
{“item”:2}
]
}

Надо сделать запрос чтоб для каждой записи таблицы вывести все элементы массива array в одном поле, то есть:

Код: sql
1.
2.
3.
4.
5.
RecordId  item
1            1
1            2
2            7
2            5



Как сделать для одной записи понятно, но как для более чем одна что-то не получается. Подскажите кто знает?
...
Рейтинг: 0 / 0
28.10.2020, 13:21
    #40012598
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить элементы из массива json
rigor mortis,

вы чушь какую то привели, во первых это не валидный json, во вторых приведите тестовые данные которые будут содержать данные предоставленные вашей требуемой выходной формой
...
Рейтинг: 0 / 0
28.10.2020, 14:57
    #40012647
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить элементы из массива json
felix_ff
во первых это не валидный json

Вполне себе валидный, только после Array двоеточие пропущено - скорее всего просто опечатка.
...
Рейтинг: 0 / 0
28.10.2020, 15:00
    #40012651
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить элементы из массива json
fkthat
felix_ff
во первых это не валидный json

Вполне себе валидный, только после Array двоеточие пропущено - скорее всего просто опечатка.
и сможете придумать, как на этом "валидном json" получен результат из сабжа ?
...
Рейтинг: 0 / 0
28.10.2020, 15:03
    #40012654
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить элементы из массива json
court
fkthat
пропущено...

Вполне себе валидный, только после Array двоеточие пропущено - скорее всего просто опечатка.
и сможете придумать, как на этом "валидном json" получен результат из сабжа ?

да что тут думать

Код: sql
1.
2.
3.
4.
5.
6.
7.
select 
  record_id = 1 
  , json_filed = '{"Array": [{"item":1},{"item":2}]}'
union all
select 
  record_id = 2
  , json_filed = '{"Array": [{"item":7},{"item":5}]}'
...
Рейтинг: 0 / 0
28.10.2020, 15:03
    #40012655
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить элементы из массива json
fkthat,


ну я и говорю, то что изначально предоставил ТС не является валидным json если загнав его в парсер мы получаем исключения.
понятное дело что там опечатка только в одном знаке, а если бы пример был бы из тысячи элементови не хваталобы 2 знаков.
...
Рейтинг: 0 / 0
28.10.2020, 15:06
    #40012658
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить элементы из массива json
rigor mortis,

типа такого?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
with t as (
    select 
        1 id
        , cast('{"arr":[{"a":1,"b":2},{"a":2,"b":3}]}' as nvarchar(max)) as j
)
select
    t.id
    , z.*
from 
    t
    cross apply openjson(t.j,'$.arr') with (a int '$.a', b int '$.b') as z
...
Рейтинг: 0 / 0
28.10.2020, 15:11
    #40012663
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить элементы из массива json
env,

тогда уж скорее так, если у него структура таблицы такая:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
with t as (
    select 
      record_id = 1 
      , json_filed = '{"Array": [{"item":1},{"item":2}]}'
    union all
    select 
      record_id = 2
      , json_filed = '{"Array": [{"item":7},{"item":5}]}'
)
select t.record_id, json_value(x.value, '$.item') as [item]
from t
cross apply openjson(t.json_filed, '$.Array') x;
...
Рейтинг: 0 / 0
28.10.2020, 17:36
    #40012762
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить элементы из массива json
court
fkthat
пропущено...

Вполне себе валидный, только после Array двоеточие пропущено - скорее всего просто опечатка.
и сможете придумать, как на этом "валидном json" получен результат из сабжа ?

Смогу, только сейчас недосуг, может быть попозже.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Получить элементы из массива json / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]