gpt4 book ai didi

SQL Server XML - 从 SQL 值设置节点名称

转载 作者:行者123 更新时间:2023-12-04 15:54:24 25 4
gpt4 key购买 nike

如何在 SELECT FOR XML 语句中生成节点名称?

假设我有 table :

declare @Products table (ID int, Name varchar(100))
insert into @Products (1, 'Balls')
insert into @Products (2, 'Paper')
insert into @Products (3, 'Beer')

我想要以下 XML 输出:

<Products>
<Balls @ID=1/>
<Paper @ID=2/>
<Beer @ID=3/>
</Products>

如果不可能,我可以使用 SQL Server XML DML 来完成吗?

最佳答案

好吧,我认为您不能直接使用 FOR XML PATH 命令来做到这一点。

所以经过深思熟虑,我想出了以下解决方案,虽然有些尴尬,但它确实有效:

DECLARE @Products TABLE (ID int, Name varchar(100))

INSERT INTO @Products (id, name)
VALUES (1, 'Balls'),
(2, 'Paper'),
(3, 'Beer')

SELECT
CAST('<' + NAME + ' id="' + CAST(id AS VARCHAR) + '" />' AS XML)
FROM
@Products
FOR XML PATH(''), ROOT('Products')

输出:

<Products>
<Balls id="1" />
<Paper id="2" />
<Beer id="3" />
</Products>

这里是 SQL Fiddle

关于SQL Server XML - 从 SQL 值设置节点名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25837373/

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