我已经在网上做了很多关于这个问题答案的研究。我找到了很多帮助网站,但遗憾的是我没有得到结果(我不太了解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;。
非常感谢。
答案 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