SQL Server 2012查询XML列

时间:2017-02-13 08:56:02

标签: sql sql-server xml

我已经在网上做了很多关于这个问题答案的研究。我找到了很多帮助网站,但遗憾的是我没有得到结果(我不太了解XML)。

我有一个表(称为CustomField.PersonCustomFieldValue),它有一个存储XML数据的XML数据类型列(称为XmlValue)。我不确定如何提取值。

列中存储的数据示例如下:

<XmlDataValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><Value xsi:type="xsd:string">NO</Value></XmlDataValue>

如何提取Value字符串?在这种情况下 - &#34;否&#34;。

非常感谢。

1 个答案:

答案 0 :(得分:0)

试试这样:

DECLARE @xml XML=
N'<XmlDataValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Value xsi:type="xsd:string">NO</Value>
</XmlDataValue>';
SELECT @xml.value(N'(/XmlDataValue/Value/text())[1]',N'nvarchar(max)');

这将返回相同的

SELECT @xml.value(N'(//Value)[1]',N'nvarchar(max)')

但你应该尽可能具体!

为表格列调用此列表如下:

SELECT XmlValue.value(N'(/XmlDataValue/Value/text())[1]',N'nvarchar(max)')
FROM YourTable