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

Откуда: Москва
Сообщений: 558
Дня доброго ... упрощенный пример...
есть выборка
select 
'Свойства' as '@caption'
,'Values' as '@name'
,'kod1' as 'prop_value/@prop_name','' as 'prop_value/@value'
FOR XML PATH('Collection')

как результат получаем xml

<Collection caption="Свойства" name="Values">
  <prop_value prop_name="kod1" value="" />
</Collection>
-----------------------------------------------------------------
надо получить
<Collection caption="Свойства" name="Values">
  <prop_value prop_name="kod1" value="" />
  <prop_value prop_name="kod2" value="5" />
</Collection>

тупой вариант конечно не работает т.к. sql совершенно логично думает что это одно и тоже поле ...
select 
'Свойства' as '@caption'
,'Values' as '@name'
,'kod1' as 'prop_value/@prop_name','' as 'prop_value/@value'
,'kod2' as 'prop_value/@prop_name','5' as 'prop_value/@value'
FOR XML PATH('Collection')

как обойти, поделитесь идеями ?
13 июл 11, 15:24    [10968071]     Ответить | Цитировать Сообщить модератору
 Re: хелп разобраться с SELECT FOR XML  [new]
mike909
Member

Откуда:
Сообщений: 662
Masygreen
надо получить
<Collection caption="Свойства" name="Values">
  <prop_value prop_name="kod1" value="" />
  <prop_value prop_name="kod2" value="5" />
</Collection>

select *
FROM (SELECT 'Свойства' as [caption], 'Values' as [name] ) as [Collection]
CROSS JOIN (
  SELECT 'kod1' as [prop_name], '' as [value] 
  union all
  SELECT 'kod2' as [prop_name], '5' as [value]
) as prop_value
FOR XML AUTO
13 июл 11, 15:57    [10968379]     Ответить | Цитировать Сообщить модератору
 Re: хелп разобраться с SELECT FOR XML  [new]
Masygreen
Member

Откуда: Москва
Сообщений: 558
mike909,
спасибо .. затупил я че то ....
13 июл 11, 16:01    [10968410]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить