xquery中exist函数变量代替问题,巨变态
declare @GroupName nvarchar(30)
declare @xml xml
set @GroupName = '同事'
set @xml = N'
<Userlist>
<Group Value="同事">
<User ID="6F9619FF-8B86-D011-B42D-00C04FC964FF">
<UserName>TT</UserName>
<Phone>13819185363</Phone>
</User>
<User ID="6F9619FF-8B86-D011-B42D-00C04FC964F1">
<UserName>YY</UserName>
<Phone>13507878345</Phone>
</User>
</Group>
<Group Value="MM">
<User ID="342354234324">
<UserName>若若</UserName>
<Phone>13852332443</Phone>
</User>
</Group>
</Userlist>
'
select @xml.exist(N'/Userlist/Group[(@Value cast as xs:string?) eq xs:string("同事")]
')
-------
精确查询时可以正常返回,可是要把“同事”替换成变量却找不到方法。
select @xml.exist(N'/Userlist/Group[@Value="同事"]') 这个精确查询也可以
下面的方法替换变量都不行,请帮帮忙。
select @xml.exist(N'/Userlist/Group[@Value="{@GroupName}"]')--变量不起作用
select @xml.exist(N'/Userlist/Group[@Value="{sql:variable("@GroupName")}"]')--提示错误