从 SQL Server 2008 生成 xml
Generating xml from SQL Server 2008
对于给定的索赔,我有 3 个诊断代码。当前,在从 SQL 服务器生成 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>
使用Xml Path()
和Root
SELECT *
FROM sandbox.dbo.testing
WHERE claimID = 20
FOR xml path(''), root('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')
对于给定的索赔,我有 3 个诊断代码。当前,在从 SQL 服务器生成 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>
使用Xml Path()
和Root
SELECT *
FROM sandbox.dbo.testing
WHERE claimID = 20
FOR xml path(''), root('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')