SQL从XML提取值

我不能编码

我有以下XML,我想使用SQL提取FieldValue。我怎样才能做到这一点?

  <Field Group="Annuitant">
    <FieldName>Contract Number</FieldName>
    <FieldValue>TR13116544</FieldValue>
  </Field>

谢谢

Shnugo
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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章