我的数据(在存储过程中传递到参数(@Data XML)中)如下所示:
<Records>
<Record id="1">
<Data>
<FirstName>John</FirstName>
<LastName>Doe</LastName>
</Data>
<Result>
<StatusId>3</StatusId>
<ErrorCodes>
<Item>4</Item>
<Item>23</Item>
<Item>19</Item>
</ErrorCodes>
</Result>
</Record>
<Record id="2">
<Data>
<FirstName>Fred</FirstName>
<LastName>Blog</LastName>
</Data>
<Result>
<StatusId>2</StatusId>
<ErrorCodes>
<Item>1</Item>
<Item>3</Item>
</ErrorCodes>
</Result>
</Record>
</Records>
我想选择记录ID和错误代码,如下所示:
id Item
----------
1 4
1 23
1 19
2 1
2 3
数据顺序无关紧要。
以下是错误代码,但没有记录ID:
SELECT Data.value('.', 'int') as ErrorCode
FROM @Data.nodes('/Records/Record/Result/ErrorCodes/*') AS data(Data)
这个表达式应该让您获得“ parent-of-parent-of-parent”元素:
Data.query('../../..')
...所以尝试这样的东西(未经测试)...
SELECT
id = Data.value('../../../@id', 'int'),
item = Data.value('.', 'int')
FROM @Data.nodes('/Records/Record/Result/ErrorCodes/*') AS data(Data)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句