How does one execute where clause command on a xml data type in Sql Server 2005 ?
Xml Structure
<User UserId="1" UserName="x">
<User UserId="2" UserName="y">
Query
SELECT XmlColumn from Table where XmlColumn.query('/User[@UserId'+ @dynamicValue +']')
Intended Output
Get all the user tags where the attribute UserId = input variable
declare @T table
(
XMLColumn xml
)
insert into @T values ('<User UserId="1" UserName="x"/>')
insert into @T values ('<User UserId="2" UserName="y"/>')
declare @UserID int
set @UserID = 1
select XMLColumn
from @T
where XMLColumn.exist('/User[@UserId = sql:variable("@UserID")]') = 1
Result:
XMLColumn
---------------------------------
<User UserId="1" UserName="x" />