2017-02-13 6 views
1

Я проделал много исследований в сети для ответа на этот вопрос. Я нашел много сайтов справки, но я не получаю результатов, к сожалению (я не очень понимаю XML).Запрос SQL Server 2012 XML-столбец

У меня есть таблица (CustomField.PersonCustomFieldValue), которая имеет столбец XML-типа данных (называемый XmlValue), который хранит XML-данные. Я не уверен, как извлечь значения.

Пример данных, хранящихся в столбце:

<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? В этом случае - «Нет».

Большое спасибо.

+0

Check [это] (http://stackoverflow.com/questions/899313/select-values-from-xml-field-in-sql -server-2008), может помочь вам! –

ответ

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 
+0

Большое спасибо Шнуго. Другой вопрос, как я могу настроить столбец SQL для отображения только определенного значения, не вставляя оператор Select в другой Select? –

+0

@MarkBell Один принцип на SO: Одна проблема - один вопрос. Пожалуйста, избегайте * последующих вопросов *. Пожалуйста, начните новый вопрос, где вы разместите образец кода и ожидаемый результат. Вы должны предоставить дополнительную информацию. Я понятия не имею, какие у вас другие варианты, где вы думаете, что-то гнездится ... Happy Coding! – Shnugo