Sql 解析xml时缺少数据
我在下面给出的表格中有xml数据Sql 解析xml时缺少数据,sql,sql-server,xml,tsql,Sql,Sql Server,Xml,Tsql,我在下面给出的表格中有xml数据 <App action="A" id="1"> <BaseVehicle id="822" /> <!-- 1986 Volvo 740 --> <EngineBase id="2137" /> <!-- L6 2.4L --> <Qty>6</Qty> <PartType id="7152" /> <!-- Diesel Glow Plug --> &l
<App action="A" id="1">
<BaseVehicle id="822" />
<!-- 1986 Volvo 740 -->
<EngineBase id="2137" />
<!-- L6 2.4L -->
<Qty>6</Qty>
<PartType id="7152" />
<!-- Diesel Glow Plug -->
<MfrLabel>Diesel Glow Plug</MfrLabel>
<Part>0250201032</Part>
您应该正确准备XML,不要依赖注释中的数据 要读取注释中的数据,可以使用
comments()
XQuery:
DECLARE @xml XML =
N'<ACES>
<App action="A" id="1">
<BaseVehicle id="822" />
<!-- 1986 Volvo 740 -->
<EngineBase id="2137" />
<!-- L6 2.4L -->
<Qty>6</Qty>
<PartType id="7152" />
<!-- Diesel Glow Plug -->
<MfrLabel>Diesel Glow Plug</MfrLabel>
<Part>0250201032</Part>
</App>
</ACES>';
SELECT
one.App.value('comment()[1]', 'nvarchar(1000)') AS comment_1,
one.App.value('comment()[2]', 'nvarchar(1000)') AS comment_2,
one.App.value('comment()[3]', 'nvarchar(1000)') AS comment_3
FROM ...
在列中显示XML,而不仅仅是其中的一部分。@LAD22025:one.App.value('BaseVehicle[1],'VARCHAR(100')作为BaseVehicle,one.App.value('PartType[1],'VARCHAR(100')作为PartType,
是注释,非实际数据缺少值,且@lad2025:是否有任何方法获取该值。获取错误:提供的值的列名或数量与表定义不匹配。@akhrot这是如何检索数据的示例,而不是复制和粘贴的代码。你需要根据你的需要调整它。准备所有需要的结构和样本数据。
DECLARE @xml XML =
N'<ACES>
<App action="A" id="1">
<BaseVehicle id="822" />
<!-- 1986 Volvo 740 -->
<EngineBase id="2137" />
<!-- L6 2.4L -->
<Qty>6</Qty>
<PartType id="7152" />
<!-- Diesel Glow Plug -->
<MfrLabel>Diesel Glow Plug</MfrLabel>
<Part>0250201032</Part>
</App>
</ACES>';
SELECT
one.App.value('comment()[1]', 'nvarchar(1000)') AS comment_1,
one.App.value('comment()[2]', 'nvarchar(1000)') AS comment_2,
one.App.value('comment()[3]', 'nvarchar(1000)') AS comment_3
FROM ...
╔════════════════╦═══════════╦═══════════════════╗
║ comment_1 ║ comment_2 ║ comment_3 ║
╠════════════════╬═══════════╬═══════════════════╣
║ 1986 Volvo 740 ║ L6 2.4L ║ Diesel Glow Plug ║
╚════════════════╩═══════════╩═══════════════════╝