【发布时间】:2017-03-03 11:22:39
【问题描述】:
我将为我需要的一个简单示例制作一个块代码
select
( select
(Select
(Select
NULLIF (t1.number,2) as 'e'
FOR XML PATH('d'),type
)
FOR XML PATH('c'),type
)
FOR XML PATH('b1'), type
) ,
t1.number as 'b2'
from
(select 1 as number union all select 2 as number union all select 3 as number) as t1
FOR XML PATH(''),
ROOT('a')
并通过此代码获得:
<a>
<b1>
<c>
<d>
<e>1</e>
</d>
</c>
</b1>
<b2>1</b2>
<b1>
<c>
<d />
</c>
</b1>
<b2>2</b2>
<b1>
<c>
<d>
<e>3</e>
</d>
</c>
</b1>
<b2>3</b2>
</a>
但我想在数字为 2 时获取 c 和 d 和 d 元素不显示 (记住这是一个更复杂的查询的例子)
我想得到什么:
<a>
<b1>
<c>
<d>
<e>1</e>
</d>
</c>
</b1>
<b2>1</b2>
</b1>
<b2>2</b2>
<b1>
<c>
<d>
<e>3</e>
</d>
</c>
</b1>
<b2>3</b2>
</a>
【问题讨论】:
-
您想要获取的 XML 无效...请修复此问题并提供有关您需求的一些背景信息。 T
-
你说得对,在 "as t1" 复制粘贴问题之前有一个 >,谢谢,现在已更正。
-
不,这个错误很容易检测(和修复)。您在 想要获取 部分中发布的 XML 无效(我猜
</b1>放错了位置) -
只需更改为
而不是仅 1>,我不知道为什么,但该 xml 是我发布的查询的响应。
标签: sql-server xml tsql path null