我们将 XML 中的部分 ID(整数)存储在列中,并使用 XQuery 查找具有指定部分 ID 的项目。我正在尝试扩展代码(在 C# 中)以能够使用作为部分 ID 的整数数组。当值被硬编码时,代码在 SSMS 中运行良好。当我尝试在 XQuery 中使用 sql:variable 时,我没有得到任何结果。
declare @table table
(
Sections nvarchar(200)
)
insert into @table values ('<sections><section value="1" /></sections>')
insert into @table values ('<sections><section value="2" /></sections>')
--This works
select * from @table where CONVERT(xml, Sections).exist('/sections/section[@value = (1,2)]') = 1
--This doesn't work :(
Declare @stringvalue nvarchar(50)
set @stringvalue = '(1,2)'
select * from @table where CONVERT(xml, Sections).exist('/sections/section[@value = sql:variable("@stringvalue")]') = 1