我有以下XML,我想使用SQL提取FieldValue。我怎样才能做到这一点?
<Field Group="Annuitant">
<FieldName>Contract Number</FieldName>
<FieldValue>TR13116544</FieldValue>
</Field>
谢谢
DECLARE @xml XML=
'<Field Group="Annuitant">
<FieldName>Contract Number</FieldName>
<FieldValue>TR13116544</FieldValue>
</Field>';
-懒惰的方法
SELECT @xml.value('(//FieldValue)[1]','varchar(50)')
- 更好
SELECT @xml.value('(/Field/FieldValue)[1]','varchar(50)')
-这就是您应该做的:尽可能具体...
SELECT @xml.value('(/Field/FieldValue/text())[1]','varchar(50)')
如果有-我认为-有几个<Field>
要素,而您需要选择最严格的要素,则可以执行以下操作:
DECLARE @name VARCHAR(100)='Contract Number';
SELECT @xml.value('(/Field[(FieldName/text())[1]=sql:variable("@name")]/FieldValue/text())[1]','varchar(50)')
提示:您的问题不是很清楚,我这一边需要很多猜测。对于您的下一个问题,我想请您更具体。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句