SQL Server 2012查询XML列
我在网上做了很多关于这个问题的答案的研究。我发现了很多帮助网站,但不幸的是我没有得到结果(我不太了解XML)。SQL Server 2012查询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>
如何提取字符串值?在这种情况下 - “否”。
非常感谢。
试试这样说:
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
许多人都感谢Shnugo。另一个问题,我如何调整列SQL以仅显示某个值,而不在另一个Select中嵌套Select语句? –
@MarkBell SO的一个原则是:一个问题 - 一个问题。请避免*后续问题。请开始一个新的问题,在其中放置一些示例代码和预期输出。您必须提供更多信息。我不知道,你有什么其他选择,你认为在哪里嵌套的东西......快乐编码! – Shnugo
检查[这](http://*.com/questions/899313/select-values-from-xml-field-in-sql -server-2008)的问题,可能会帮助你通过! –