对于给定的 claim ,我有 3 个诊断代码。目前,在从 SQL Server 生成 xml 时,我得到 3 个分支,每个诊断代码对应一个分支,具有相同的声明 ID,如下面的输出所示。但我需要一种出路,以便所有 3 个诊断代码都可以与关联的 claim ID 结合起来并生成所需的结果片段。
选择语句是:
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>
最佳答案
在子查询和硬编码中获取行,或者在主查询中使用 ClaimID 的参数。
select 20 as claimID,
(
select diagnosis
from sandbox.dbo.testing
where claimID = 20
for xml path(''), type
)
for xml path('sandbox.dbo.testing')
关于sql-server - 从 SQL Server 2008 生成 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27892340/