我需要获取具有多个键的用户的childnode值,如下所示:
<Individuals>
<User key="0">
<UserlID>100</UserlID>
<FirstName>John Doe</FirstName>
</User>
<User key="1">
<UserlID>101</UserlID>
<FirstName>Jane Doe</FirstName>
</User>
<User key="2">
<UserlID>102</UserlID>
<FirstName>Jack Black</FirstName>
</User>
</Individuals>
我想要的结果是,三行所有key-s UserID
- s或一行连接所有三个键UserID
- s。 key
的数量是可变的,可能超过三个。
设法获取静态UserID值:
SELECT
[UserID] = A.XmlField.value('(Individuals/User[@key=2]/UserlID)[1]', 'Int')
FROM [MyTable] As A
但问题是我无法获得所有userID-s
答案 0 :(得分:1)
你可以这样做:
SELECT u.value('UserlID[1]', 'int') as UserlID
FROM MyTable CROSS APPLY XmlField.nodes('/Individuals/User') i(u)