powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Конструкция FOR XML
6 сообщений из 6, страница 1 из 1
Конструкция FOR XML
    #40006872
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Нужно мне получить XML, почти готово, но не могу доделать последний элемент.



вот код
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT top 1 1 as Tag,
       NULL as Parent,
       CAST([AZIMUTH] as nvarchar) as [component!1!azimut],
       null as [dgm!2!angle],
       null as [dgm!2!gain]
FROM [dbo].[REPORT_HARDWARE_VERT_PATTERN] where DEVICE_ID = 95649 
UNION ALL
SELECT 2 as Tag, 
       1 as Parent
      ,CAST([AZIMUTH] as nvarchar) as "@id"
      ,CAST([ANGLE] as nvarchar) angle
      ,CAST([AMP_FACTOR] as nvarchar) gain
  FROM [dbo].[REPORT_HARDWARE_VERT_PATTERN] where DEVICE_ID = 95649 
  ORDER BY [component!1!azimut],[dgm!2!angle]
  FOR XML  explicit



он получает

<component azimut="205">
<dgm angle="0" gain="10.41" />
<dgm angle="-16" gain="-11.52" />
<dgm angle="17" gain="-11.16" />
<dgm angle="-17" gain="-10.89" />
<dgm angle="18" gain="-10.35" />
<dgm angle="33" gain="-0.78" />
<dgm angle="-33" gain="-0.87" />
<dgm angle="44" gain="-37.15" />
<dgm angle="-46" gain="-35.89" />
<dgm angle="5" gain="9.78" />
<dgm angle="-5" gain="9.78" />
</component>

а мне нужно еще один внешний уровень, что бы было

<vertical_antenna_diagram id="1">
<component azimuth="205">
<dgm angle="-46" gain="-35.89"/>
<dgm angle="-33" gain="-0.87"/>
<dgm angle="-17" gain="-10.89"/>
<dgm angle="-16" gain="-11.52"/>
<dgm angle="-5" gain="9.78"/>
<dgm angle="0" gain="10.41"/>
<dgm angle="5" gain="9.78"/>
<dgm angle="17" gain="-11.16"/>
<dgm angle="18" gain="-10.35"/>
<dgm angle="33" gain="-0.78"/>
<dgm angle="44" gain="-37.15"/>
</component>
</vertical_antenna_diagram>

там ID всего один и будет. Может кто подскажет. Спасибо.
...
Рейтинг: 0 / 0
Конструкция FOR XML
    #40006884
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
patrick1968,

чего вдруг через explicit делаешь ? 2000-й сервер ?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
select
	   1 as Tag,
       null as Parent,
	   1 as [vertical_antenna_diagram!1!id],
	   null as [component!2!azimut], 
	   null as [dgm!3!angle], 
	   null as [dgm!3!gain] 
union all
SELECT top 1 
	   2 as Tag,
       1 as Parent,
	   null, 
       10 as [component!2!azimut],
       null as [dgm!3!angle],
       null as [dgm!3!gain]
UNION ALL
SELECT 3 as Tag, 
       2 as Parent
	   ,null 
      ,20 as "@id"
      ,30 angle
      ,40 gain
  ORDER BY [component!2!azimut],[dgm!3!angle]
  FOR XML  explicit


Код: sql
1.
2.
3.
4.
5.
<vertical_antenna_diagram id="1">
  <component azimut="10">
    <dgm angle="30" gain="40" />
  </component>
</vertical_antenna_diagram>
...
Рейтинг: 0 / 0
Конструкция FOR XML
    #40008097
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только сейчас добрался до темы, получилось. Спасибо за разъяснение
...
Рейтинг: 0 / 0
Конструкция FOR XML
    #40008334
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день. В продолжении темы. Для того, чтобы безошибочно разместить данную конструкцию в строке результата запроса, ее пришлось "обернуть" еще одним SELECTом, но при этом весь XML получился сплошь одной строкой (даже без пробелов между элементами), а как сделать так, чтобы каждый элемент был на отдельной строке? Спасибо.
...
Рейтинг: 0 / 0
Конструкция FOR XML
    #40008336
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
patrick1968,

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


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