sql-server - 从 SQL Server 创建 XML
问题描述
我需要一些帮助。我正在尝试使用此查询创建 XML:
WITH XMLNAMESPACES ('Envelope' AS soapenv)
SELECT *
FROM CrearViaje4
JOIN transporte ON CrearViaje4.Cod_viaje = transporte.Cod_viaje
JOIN depositoSalida ON transporte.Cod_viaje = depositoSalida.cod_viaje
FOR XML AUTO, ROOT('soapenv:Body'), ELEMENTS
我得到了这个结果:
<soapenv:Body xmlns:soapenv="Envelope">
<CrearViaje4>
<cod_viaje>A02VAIFHDXH</cod_viaje>
<Empresa>Tradelog</Empresa>
<transporte>
<cod_viaje>A02VAIFHDXH</cod_viaje>
<depositoSalida>
<cod_viaje>A02VAIFHDXH</cod_viaje>
</depositoSalida>
</transporte>
</CrearViaje4>
</soapenv:Body>
为什么是transporte
在桌子底下depositoSalida
?
我想得到这个结果,我该怎么办?
<soapenv:Body xmlns:soapenv="Envelope">
<CrearViaje4>
<cod_viaje>A02VAIFHDXH</cod_viaje>
<Empresa>Tradelog</Empresa>
<transporte>
<cod_viaje>A02VAIFHDXH</cod_viaje>
</transporte>
<depositoSalida>
<cod_viaje>A02VAIFHDXH</cod_viaje>
</depositoSalida>
</CrearViaje4>
</soapenv:Body>
解决方案
你可以尝试加入depositoSalida on CrearViaje4.Cod_viaje = depositoSalida.cod_viaje
with xmlnamespaces ('Envelope' as soapenv)
select *
from CrearViaje4
join transporte on CrearViaje4.Cod_viaje = transporte.Cod_viaje
join depositoSalida on CrearViaje4.Cod_viaje = depositoSalida.cod_viaje
for xml auto, root('soapenv:Body'), elements
或使用子查询来获取您的额外数据
with xmlnamespaces ('Envelope' as soapenv)
select *
, ( select *
from transporte
where CrearViaje4.Cod_viaje = transporte.Cod_viaje
for xml path(''), type ) as transporte
, ( select *
from depositoSalida
where CrearViaje4.Cod_viaje = depositoSalida.Cod_viaje
for xml path(''), type ) as depositoSalida
from CrearViaje4
for xml auto, root('soapenv:Body'), elements
推荐阅读
- spring-boot - Jacoco 测试报告不包括 integrationTest
- java - 你如何在java中正确导入文件?
- node.js - 如何将 metamask 与 ethers.js 连接并获取余额?
- c# - 如何将zip文件发送到api
- sql - 标记 BigQuery 表中前 20% 的记录
- java - java.sql.SQLException:列索引超出范围,0 < 1。使用准备好的语句
- labview - Labview 使用历史缓冲区开始记录
- python - 为什么要打印 s3 的对象地址?
- python - 如何在 tkinter 文本框中获取光标位置详细信息
- python - 当我运行 python 脚本连接到 Sql 服务器时出现 SSL 错误