对于给定的声明,我有3个诊断代码。目前,当从SQL Server生成xml时,我为每个诊断代码获得3个分支,其中具有与下面输出中显示的相同的声明ID。但是我需要一个出路,以便所有3个诊断代码都可以使用相关的声明ID进行分组并产生欲望结果片段。
Select语句是:
select *
from sandbox.dbo.testing
WHERE claimID = 20
FOR XML auto,ELEMENTS
输出
claimID diagnosis
20 v234
20 v24
20 v256
生成的XML是:
<sandbox.dbo.testing>
<claimID>20</claimID>
<diagnosis>v234</diagnosis>
</sandbox.dbo.testing>
<sandbox.dbo.testing>
<claimID>20</claimID>
<diagnosis>v24</diagnosis>
</sandbox.dbo.testing>
<sandbox.dbo.testing>
<claimID>20</claimID>
<diagnosis>v256</diagnosis>
</sandbox.dbo.testing>
但需要以下表格中的结果
<sandbox.dbo.testing>
<claimID>20</claimID>
<diagnosis>v234</diagnosis>
<diagnosis>v24</diagnosis>
<diagnosis>v256</diagnosis>
</sandbox.dbo.testing>
答案 0 :(得分:3)
获取子查询和硬代码中的行,或者在主查询中使用claimID的参数。
select 20 as claimID,
(
select diagnosis
from sandbox.dbo.testing
where claimID = 20
for xml path(''), type
)
for xml path('sandbox.dbo.testing')
答案 1 :(得分:0)
使用Xml Path()
和Root
SELECT *
FROM sandbox.dbo.testing
WHERE claimID = 20
FOR xml path(''), root('sandbox.dbo.testing')