1
我想從2005和2008R2 SQL Server中獲取以XML格式返回的一些數據。我有兩張桌子 - 一個主人和一個細節。我希望XML給出主信息,並在其中查詢查詢的每個主記錄的詳細信息(如果存在)。如果沒有詳細信息存在,它應該返回一個空節點而不是任何東西。例如,當詳細記錄存在,我想這一點:SQL Server 2008 XML空節點
<masters>
<master>
<flda>value</flda>
<fldb>value</fldb>
<details>
<detail>
<dtla>value</dtla>
</detail>
</details>
</master>
</masters>
當NO詳細記錄存在,我想這一點:
<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');