gpt4 book ai didi

SQL Server T-SQL 使用 FOR XML PATH 将数据导入 XML

转载 作者:数据小太阳 更新时间:2023-10-29 02:32:27 25 4
gpt4 key购买 nike

我有如下表结构

ZoneID int
ZoneName varchar(50)

我需要将其转化为如下的 XML 结构,以便导入到另一个系统中

    <Batch>
<Record>
<Insert>
<Field>
<FieldName>ZoneID</FieldName>
<FieldValue>1</FieldValue>
</Field>
<Field>
<FieldName>ZoneName</FieldName>
<FieldValue>Interior</FieldValue>
</Field>
</Insert>
</Record>
<Record>
<Insert>
<Field>
<FieldName>ZoneID</FieldName>
<FieldValue>2</FieldValue>
</Field>
<Field>
<FieldName>ZoneName</FieldName>
<FieldValue>Exterior</FieldValue>
</Field>
</Insert>
</Record>
</Batch>

到目前为止我有这个:

SELECT 
(
(SELECT
'ZoneID' as 'FieldName',
[ZoneID] as 'FieldValue'
FROM [dbo].[Condition_t_Zones]
WHERE ZoneID = [Condition_t_Zones].ZoneID
FOR XML PATH('field'), TYPE)

) as 'Insert'

FROM [Condition_t_Zones]

FOR XML PATH('record'), ROOT('batch')

但是我无法弄清楚如何使用另一个子查询来选择另一个字段“ZoneName”。

非常感谢任何帮助。

最佳答案

设法让它工作,从我以前的测试中想想我在错误的地方有逗号和括号。

我得出的解决方案如下:

SELECT 
(
(SELECT
'ZoneID' as 'FieldName',
ZoneID as 'FieldValue'
FROM [dbo].[Condition_t_Zones]
WHERE ZoneID = [Condition_t_Zones].ZoneID
FOR XML PATH('field'), TYPE)
) as 'insert',
(
(SELECT
'ZoneName' as 'FieldName',
ZoneName as 'FieldValue'
FROM [dbo].[Condition_t_Zones]
WHERE ZoneID = [Condition_t_Zones].ZoneID
FOR XML PATH('field'), TYPE)
)
as 'insert'
FROM [Condition_t_Zones]

FOR XML PATH('record'), ROOT('batch')

关于SQL Server T-SQL 使用 FOR XML PATH 将数据导入 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4625229/

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