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');