sql-server - 从 SQL Server 2008 生成 xml

标签 sql-server xml sql-server-2008 stored-procedures

对于给定的 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/

相关文章:

sql-server - 使用 VB.NET 连接到 SQL Server 数据库

java - Android 锁屏应用程序按钮悬停和序列

android - 在此行 : 找到多个注释

sql - 创建新时间戳列时如何为现有行设置值?

SQL Server 查询列包含 id 列表

sql-server - 如何强制死锁来测试存储过程的try/catch?

python - 如何在 Python 中捕获 XML 响应的第一行?

SQL Server 添加新列后列名无效

asp.net - 与 SQL Server 建立连接时发生与网络相关或特定于实例的错误

sql - 使用动态 SQL 设置参数