powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выборка из JSON-массива
6 сообщений из 6, страница 1 из 1
Выборка из JSON-массива
    #39954905
Bobby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго дня!
Просьба сильно не пинать, с JSON-ом особо дел не имел до этого.
Есть вот такой фрагмент JSON-а:
[{"consignmentId":"c46fb402-e6da-47bd-b352-a9af0ddc29bc","carrierBookingNumber":"910748220","status":"Active","transportEquipmentIds":[],"exportCountries":["CL","RU"]}]

С выборкой элементов типа carrierBookingNumber проблем никаких нет:
Код: sql
1.
2.
3.
SELECT  
JSON_VALUE(nda.value, '$.carrierBookingNumber') 
  FROM OPENJSON(@json, '$') AS nda  


А вот как выбрать все элементы из массива exportCountries, чтоб получить табличный вид :
CL
RU
ума не приложу. Если делать вот так:
Код: sql
1.
2.
3.
SELECT  
JSON_VALUE(nda.value, '$.exportCountries[0]') 
  FROM OPENJSON(@json, '$') AS nda  


То выдергивается соответственно первый элемент "CL". А как получить сразу все элементы? Заранее благодарен за помощь
...
Рейтинг: 0 / 0
Выборка из JSON-массива
    #39954910
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bobby,

пример данных дайте в виде запроса
...
Рейтинг: 0 / 0
Выборка из JSON-массива
    #39954913
Bobby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,
решил вот таким способом:
Код: sql
1.
2.
3.
		  SELECT @importCountries= JSON_QUERY(nda.value,'$.importCountries')
		  FROM OPENJSON(@consignments, '$') AS nda
		  WHERE  JSON_VALUE(nda.value, '$.consignmentId')=@consignmentId  



тем самым получил, что
@importCountries = ' ["RU","CL"] '
А дальше уже дело техники
...
Рейтинг: 0 / 0
Выборка из JSON-массива
    #39954915
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
declare @j varchar(max) = '[{"consignmentId":"c46fb402-e6da-47bd-b352-a9af0ddc29bc","carrierBookingNumber":"910748220","status":"Active","transportEquipmentIds":[],"exportCountries":["CL","RU"]}]';

select
 json_value(a.value, '$."carrierBookingNumber"'),
 b.value
from
 openjson(@j) a cross apply
 openjson(a.value, '$."exportCountries"') b;
...
Рейтинг: 0 / 0
Выборка из JSON-массива
    #39954929
Bobby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm,
спасибо большое, то, что надо!!!
...
Рейтинг: 0 / 0
Выборка из JSON-массива
    #39981741
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm,

спасибо!

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


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