Chcę uzyskać wartość atrybutu z XML przy użyciu Xquery.Jak uzyskać wartość z atrybutu XML za pomocą Sql: Variable in xquery
MY XML jest
<Answers>
<AnswerSet>
<Answer questionId="NodeID">155</Answer>
<Answer questionId="ParentNode" selectedValue="12">Product</Answer>
</AnswerSet>
</Answers>
Poniżej jest moje zapytania.
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 ((/ odpowiedzi/AnswerSet/odpowiedź [@ questionId = SQL: zmienna ("@ Pole")]/SQL: zmienna (@Attribute)) [1] ",” varchar (max) '),' ') od węzła WHERE id = 155
poniżej linii działa poprawnie z sql: variable
ISNULL(PropertyXML.value('(/Answers/AnswerSet/Answer[@questionId=sql:variable("@Field")])[1]','varchar(max)'),'')
ale otrzymuję błąd w wierszu poniżej ..
ISNULL(PropertyXML.value('(/Answers/AnswerSet/Answer[@questionId=sql:variable("@Field")]/sql:variable(@Attribute))[1]','varchar(max)'),'')
Chcę uzyskać wynikową wartość atrybutu (@Attribute) w wyniku.
Jaka wersja SQL Server? Jeśli używasz .value, musi być 2005+ –
yes 2005 and 2008 – Mohmedsadiq