感谢一位 SO 用户,我在 FOR XML 方面取得了进展,但显然我并没有完全正确地获取 sql 语法。
假设我有以下sql
DECLARE @Uname VARCHAR(15) = 'Dom',
@Pword VARCHAR(15) = 'Monty'
SELECT
RTRIM(@Uname) AS '@uname',
RTRIM( @Pword) AS '@pword',
(SELECT COALESCE(PortOfLanding,'') AS portOfLanding
FROM Landings.LandingHeaders
WHERE Posted = 0
FOR XML PATH('Sale'))
FOR XML PATH('abc')
运行时,它会产生以下输出
<abc uname="Dom" pword="Monty"><Sale><portOfLanding>GBHTG</portOfLanding></Sale><Sale><portOfLanding>GBHTG</portOfLanding></Sale></abc>
我真正希望的是以下
<abc uname="Dom" pword="Python">
<Sale portOfLanding= "GBHTG" />
<Sale portOfLanding= "GBHTG"/>
</abc>
事实上,我想在 SQL 中添加第三部分,这样最终可能会得到像这样的 xml
<abc uname="Dom" pword="Python">
<Sale portOfLanding= "GBHTG">
<saleline detail="some value here" />
<saleline detail="some value here" />
<Sale/>
<Salesnote portOfLanding= "GBHTG"/>
</abc>
有人能指出我在原始 SQL 查询中出错的地方吗?
谢谢