小编car*_*oig的帖子

从TSQL OPENXML中的xml文档中选择节点文本值

我有一个xml文档,我想用它来更新存储过程中的值.我可以使用OPENXML处理XML,但我对提取我想要的值感到困惑.xml中的每一行都是产品记录,我想为每个属性创建一个变量.Cell0是ID,Cell2描述等

DECLARE @idoc int  
DECLARE @doc varchar(1000)  
SET @doc ='
<products>    
 <rows>
  <row>
   <cell>1</cell>
   <cell>BALSAMO DERMOSCENT</cell>
   <cell>1.00</cell>
   <cell>0.00</cell>
   <cell>18.00</cell>
   <cell>18.00</cell>
   <cell>8.00</cell>
   <cell>427</cell>
   <cell>No</cell>
  </row>
  <row>
   <cell>2</cell>
   <cell>BAYTRIL 150 MG 1 CPDO</cell>
   <cell>1.00</cell>
   <cell>0.00</cell>
   <cell>3.50</cell>
   <cell>3.50</cell>
   <cell>8.00</cell>
   <cell>57</cell>
   <cell>No</cell>
  </row>
 </rows>
</products>'
--Create an internal representation of the XML document.
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
-- Execute a SELECT statement that uses the OPENXML rowset provider.
SELECT    *
FROM       OPENXML (@idoc, '/products/rows/row/cell',1)
with (Col1 varchar(29) 'text()')
Run Code Online (Sandbox Code Playgroud)

运行上面的查询会返回xml中每个CELL的1条记录.我希望能够为每个单元返回1条记录,每个单元格具有不同的列,例如: -

Prod       Description              Qty …
Run Code Online (Sandbox Code Playgroud)

xml t-sql sql-server openxml

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

openxml ×1

sql-server ×1

t-sql ×1

xml ×1