Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 解析xml时缺少数据_Sql_Sql Server_Xml_Tsql - Fatal编程技术网

Sql 解析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

我在下面给出的表格中有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 -->
<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  ║
╚════════════════╩═══════════╩═══════════════════╝