In SQL Server, while reading an XML value, Do we have option of wildcard search in [], i.e. any same listed tag by the value like:
[COMMAND].value('(/ATTRIBUTE/ATTRIBUTEID)[*]','varchar(20)')
(Note: [COMMAND].value('(/ATTRIBUTE/ATTRIBUTEID)[3]','varchar(20)') works)
<ATTRIBUTE>
<ATTRIBUTEID>A</ATTRIBUTEID>
<ATTRIBUTEVALUE>a</ATTRIBUTEVALUE>
</ATTRIBUTE>
<ATTRIBUTE>
<ATTRIBUTEID>B</ATTRIBUTEID>
<ATTRIBUTEVALUE />
</ATTRIBUTE>
<ATTRIBUTE>
<ATTRIBUTEID>C</ATTRIBUTEID>
<ATTRIBUTEVALUE />
</ATTRIBUTE>
<ATTRIBUTE>
Using this in SQL where clause as
Where [COMMAND].value('(/ATTRIBUTE/ATTRIBUTEID)[*]','varchar(20)') like 'C"
but not worked. getting
Syntax error near ']'
You need to use a combination of XML methods to retrieve all the
<ATTRIBUTEID>values and then filter them using aWHEREclause. First we split XML into rows using .nodes(), extract content with .value(), and narrow results using WHERE (e.g., LIKE 'C%').