Я пытаюсь получить некоторые данные, возвращенные в формате XML с SQL Server 2005 и SQL Server 2008 R2. У меня есть две таблицы - мастер и деталь. Я хочу, чтобы XML предоставил основную информацию, и в этом случае была запрошена подробная информация (если она существует) для каждой основной записи. Если нет подробной информации, она должна вернуть пустой узел NOT nothing. Например, когда существуют детальные записи, я хочу это:SQL Server 2008 XML Empty Node
<masters>
<master>
<flda>value</flda>
<fldb>value</fldb>
<details>
<detail>
<dtla>value</dtla>
</detail>
</details>
</master>
</masters>
Когда не существует никаких деталей записи, я хочу это:
<masters>
<master>
<flda>value</flda>
<fldb>value</fldb>
<details />
</master>
</masters>
У меня есть следующий запрос, который получает данные правильно, когда есть деталь записи, но я не знаю, как заставить пустой узел, когда детали отсутствуют:
select m.flda, m.fldb,
(select d.dtla
from detail d
where (d.mastid = m.id)
for xml path('detail'), type) as 'details'
from master m
where (m.id = @id)
for xml path('master'), root('masters');