【发布时间】:2011-05-28 14:40:02
【问题描述】:
这是我的桌子
BasketId(int) BasketName(varchar) BasketFruits(xml)
1 Gold <FRUITS><FID>1</FID><FID>2</FID><FID>3</FID><FID>4</FID><FID>5</FID><FID>6</FID></FRUITS>
2 Silver <FRUITS><FID>1</FID><FID>2</FID><FID>3</FID><FID>4</FID></FRUITS>
3 Bronze <FRUITS><FID>3</FID><FID>4</FID><FID>5</FID></FRUITS>
我需要搜索具有 FID 值 1 和 3 的购物篮
所以在这种情况下,我会得到 Gold 和 Silver
虽然我已经达到了可以搜索 SINGLE FID 值的结果,例如 1 使用此代码:
declare @fruitId varchar(10);
set @fruitId=1;
select * from Baskets
WHERE BasketFruits.exist('//FID/text()[contains(.,sql:variable("@fruitId"))]') = 1
如果是 T-SQL,我会像这样使用 IN 子句
SELECT * FROM Baskets where FID in (1,3)
感谢任何帮助/解决方法...
【问题讨论】:
标签: sql-server xml sql-server-2008 xquery-sql