Как получить значение из XML-атрибута с помощью Sql :Переменная в xquery

Я хочу получить значение атрибута из XML с помощью Xquery.

МОЙ XML

<Answers>
  <AnswerSet>
    <Answer questionId="NodeID">155</Answer>
    <Answer questionId="ParentNode" selectedValue="12">Product</Answer>
  </AnswerSet>
</Answers>

Ниже мой запрос.

DECLARE @Field Varchar(100)
DECLARE @Attribute VARCHAR(100)
SET @Field='ParentNode'
SET @Attribute = 'selectedValue'

SELECT ISNULL(PropertyXML.value('(/Answers/AnswerSet/Answer[@questionId=sql:variable("@Field")])[1]','varchar(max)'),''),

ISNULL (PropertyXML.value (' (/Answers/AnswerSet/Answer[@questionId=sql :переменная ("@Field" )]/sql :переменная (@ Атрибут))[1]','varchar (max )'),'' )ОТ узла ГДЕ id=155

строка ниже отлично работает с переменной sql :

ISNULL(PropertyXML.value('(/Answers/AnswerSet/Answer[@questionId=sql:variable("@Field")])[1]','varchar(max)'),'')

но я получаю сообщение об ошибке в строке ниже..

ISNULL(PropertyXML.value('(/Answers/AnswerSet/Answer[@questionId=sql:variable("@Field")]/sql:variable(@Attribute) )[1]','varchar(max)'),'')

Я хочу получить в результате предоставленное значение атрибута (@Attribute ).

6
задан OMG Ponies 27 July 2012 в 04:24
поделиться