gpt4 book ai didi

sql - 从 SQL 查询生成 XML 文件

转载 作者:行者123 更新时间:2023-12-02 00:57:11 27 4
gpt4 key购买 nike

我正在尝试从 SQL 查询生成一个 XML 文件,我有一个包含以下列的表:

ItemNumber, Price, DateFrom, DateTo
我用来生成 XML 的代码是:
SELECT
ItemNumber AS '@ItemNumber',
Price AS '@Price',
DateFrom AS 'DateFrom',
DateTo AS 'DateTo'
FROM
#tempXML
FOR XML PATH('Item')
我期望得到的是这样的:
<Item id="111">
<ItemNumber>111</ItemNumber>
<Price value="3000">
<DateFrom>2018-01-02</DateFrom>
<DateTo>2018-01-30</DateTo>
</Price>
<Price value="2500">
<DateFrom>2018-01-31</DateFrom>
<DateTo>2018-11-22</DateTo>
</Price>
</Item>
<Item>
<ItemNumber>120</ItemNumber>
<Price value="4000">
<DateFrom>2018-01-12</DateFrom>
<DateTo>2018-11-22</DateTo>
</Price>
</Item>
但相反,我得到了更像这样的东西:
<Item ItemNumber="111" Price="3000">
<DateFrom>2018-01-02</DateFrom>
<DateTo>2018-01-30</DateTo>
</Item>
<Item ItemNumber="111" Price="2500">
<DateFrom>2018-01-31</DateFrom>
<DateTo>2018-11-22</DateTo>
</Item>
<Item ItemNumber="120" Price="4000">
<DateFrom>2018-01-12</DateFrom>
<DateTo>2018-11-22</DateTo>
</Item>
任何形式的帮助将不胜感激。
Sample data from the table I use
CREATE TABLE #tempXML
(
ItemNumber INT,
Price INT,
DateFrom DATE,
DateTo DATE
)

INSERT INTO #tempXML
VALUES
(111, 3000, '2018-01-02', '2018-01-30'),
(111, 2500, '2018-01-31', '2018-11-22'),
(120, 4000, '2018-01-12', '2018-11-22')
SQL fiddle : http://sqlfiddle.com/#!18/a0602/1

最佳答案

您可以指定元素应如何嵌套,如下所示:

SELECT
ItemNumber AS '@id',
ItemNumber AS 'ItemNumber',
Price AS 'Price/@value',
DateFrom AS 'Price/DateFrom',
DateTo AS 'Price/DateTo'
FROM
#tempXML
FOR XML PATH('Item');

https://docs.microsoft.com/en-us/sql/relational-databases/xml/columns-with-a-name?view=sql-server-2017

关于sql - 从 SQL 查询生成 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53435386/

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