【发布时间】:2014-07-04 02:15:09
【问题描述】:
我有一个有 2 列的表,第一个是带有主键的整数列,第二个是带有数据的 xml 列。
数据列包含xml如下
<Fields>
<Field1>10</Field1>
<Field2>11</Field2>
<Field3>10</Field3>
<Field4>11</Field4>
</Fields>
字段数不固定,每行可能有所不同。我想编写一个存储过程,它接受 2 个参数,逗号分隔的主键和逗号分隔的字符串。所以我的2个参数将是
32,54,63,653
Field1,Field2
sp 将返回一个数据表,内容如下
32 | <Fields><Field1>10</Field1><Field2>11</Field2></Fields>
54 | <Fields><Field1>50</Field1><Field2>62</Field2></Fields>
63 | <Fields><Field1>32</Field1><Field2>542</Field2></Fields>
653| <Fields><Field1>15</Field1><Field2>21</Field2></Fields>
我在从数据列的 xml 中仅选择所需节点时遇到问题。
编辑
我已经尝试了以下
select PricingXML.query('/Fields/Field1') from T_SMPricingData
但是我想要上面的很多字段不仅仅是字段1
【问题讨论】:
-
你能详细说明一下吗? “我在从数据列的 xml 中仅选择所需节点时遇到问题。”插入数据是一回事,提取数据是另一回事。您的数据库文件流是否启用?这是我从 mcsa 考试中记得的要求..
-
数据库中的表在xml列中包含许多字段,但我只想选择参数2中提到的字段。所以我只需要提取那些数据并返回它。
-
到目前为止你尝试过什么 SQL?
-
我拆分参数但我不知道如何只提取我需要的节点
标签: sql sql-server xml sql-server-2005 stored-procedures