Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / JSON. Вложенный массив. Как сделать? / 5 сообщений из 5, страница 1 из 1
12.01.2018, 13:17
    #39583268
Santa89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON. Вложенный массив. Как сделать?
Есть вот такая таблица:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
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



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

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT
Name,
Adress,
PhoneType,
PhoneNumber
FROM
@T
FOR JSON PATH



то получается три отдельных элемента. А мне нужно сделать вложенный массив. Как на картинке.
Поиск не дал нужных результатов...((
...
Рейтинг: 0 / 0
12.01.2018, 13:22
    #39583273
Хе-хе )
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON. Вложенный массив. Как сделать?
В режиме PATH можно использовать синтаксис с точкой — например, 'Item.Price' — для форматирования вложенных выходных данных.
https://docs.microsoft.com/ru-ru/sql/relational-databases/json/format-query-results-as-json-with-for-json-sql-server
...
Рейтинг: 0 / 0
12.01.2018, 13:30
    #39583280
Дедушка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON. Вложенный массив. Как сделать?
ну или "в лоб"
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
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
...
Рейтинг: 0 / 0
12.01.2018, 14:09
    #39583304
Santa89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON. Вложенный массив. Как сделать?
Дедушка, да, так сработало..

Очень странная конструкция, INNER JOIN, DISTINCT. Понятно что это делается из за того что есть "for json auto"
Хотелось бы как то более понятно сделать через "for json path"....
...
Рейтинг: 0 / 0
12.01.2018, 14:10
    #39583306
Santa89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON. Вложенный массив. Как сделать?
Хе-хе,

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


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