Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 JSON. Вложенный массив. Как сделать?  [new]
Santa89
Member

Откуда:
Сообщений: 1477
Есть вот такая таблица:
DECLARE @T TABLE
(
	Name VARCHAR(50),
	Adress VARCHAR(50),
	PhoneType VARCHAR(50),
	PhoneNumber VARCHAR(50)
)

INSERT INTO @T
SELECT 'Petya','Moscow','Home','25-9-21'
UNION ALL
SELECT 'Petya','Moscow','Mobile','8985-349-07-XX' 
UNION ALL
SELECT 'Vasya','Vladivostok','Mobile','8929-585-34-XX'

SELECT * FROM @T


Если я делаю так:

SELECT
Name,
Adress,
PhoneType,
PhoneNumber
FROM
@T
FOR JSON PATH


то получается три отдельных элемента. А мне нужно сделать вложенный массив. Как на картинке.
Поиск не дал нужных результатов...((

К сообщению приложен файл. Размер - 21Kb
12 янв 18, 13:17    [21101130]     Ответить | Цитировать Сообщить модератору
 Re: JSON. Вложенный массив. Как сделать?  [new]
Хе-хе )
Guest
В режиме PATH можно использовать синтаксис с точкой — например, 'Item.Price' — для форматирования вложенных выходных данных.
https://docs.microsoft.com/ru-ru/sql/relational-databases/json/format-query-results-as-json-with-for-json-sql-server
12 янв 18, 13:22    [21101167]     Ответить | Цитировать Сообщить модератору
 Re: JSON. Вложенный массив. Как сделать?  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
ну или "в лоб"
select distinct
t1.Name,
t1.Adress,
PhoneNumbers.PhoneType,
PhoneNumbers.PhoneNumber
from
@T t1
inner join @T PhoneNumbers on t1.Name = PhoneNumbers.Name
for json auto
12 янв 18, 13:30    [21101213]     Ответить | Цитировать Сообщить модератору
 Re: JSON. Вложенный массив. Как сделать?  [new]
Santa89
Member

Откуда:
Сообщений: 1477
Дедушка, да, так сработало..

Очень странная конструкция, INNER JOIN, DISTINCT. Понятно что это делается из за того что есть "for json auto"
Хотелось бы как то более понятно сделать через "for json path"....
12 янв 18, 14:09    [21101410]     Ответить | Цитировать Сообщить модератору
 Re: JSON. Вложенный массив. Как сделать?  [new]
Santa89
Member

Откуда:
Сообщений: 1477
Хе-хе,

через точки не получается. не создаётся вложенный массив никак...
12 янв 18, 14:10    [21101414]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить