gpt4 book ai didi

sql-server - 将 XML 显式查询设置为变量

转载 作者:行者123 更新时间:2023-12-03 00:02:52 24 4
gpt4 key购买 nike

我需要在 SQL 中生成以下 XML 字符串并将其分配给一个变量。

<List>
<V Value="TESt">
<Target a="10" b="11"/>
</V>
<T Value="TESt1">
<Target a="100" b="101"/>
</V>
</List>

因此,我编写了以下 SQL 代码:

;WITH XML_CTE AS
(
SELECT
1 AS TAG,
NULL AS Parent,
UT.title AS [v!1!Value],
null AS [Target!2!a],
null AS [Target!2!b]
FROM
(
select
10 AS A,
11 AS B,
'TESt' as title
union
select
100 AS a,
101 AS b,
'TESt1' as title
)UT
UNION ALL
SELECT
2,
1,
UT.title AS Value,
ut.a,
ut.b
FROM
(
select
10 AS a,
11 AS b,
'TESt' as title
union
select
100 AS a,
101 AS b,
'TESt1' as title
)ut
)
SELECT * FROM XML_CTE
ORDER BY
[V!1!Value],
[Target!2!a]
FOR XML EXPLICIT, ROOT('List')

但是如何将它分配给 xml(或 nvarchar)变量?由于“UNION ALL”,我必须将其包装在 CTE 中,但是将其放在 CTE 中,我无法将其分配给变量。

最佳答案

您可以将 SELECT * FROM XML_CTE... 语句更改为以下内容

SELECT @MyVariable = 
(SELECT * FROM XML_CTE
ORDER BY
[V!1!Value],
[Target!2!a]
FOR XML EXPLICIT, ROOT('List')
)

关于sql-server - 将 XML 显式查询设置为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14386650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com