首页 新闻 会员 周边

sql server 2012 contains

0
悬赏园豆:15 [已关闭问题] 关闭于 2016-11-18 15:10

sql2012在存储过程中查询全文索引
declare @Name nvarchar(50)
set @Name='' -- 参数可能为空,为空时不查询全文索引返回所有数据,不为空是返回符合条件的数据。
select * from [表] WHERE year=xxx and (@Name='' OR CONTAINS(fName,@Name))

提示错误“全文谓词是 Null 或为空”,意思应该是CONTAINS里谓词参数不能为空,在SQL2005里就没有这个错误,除了用下面的写法或动态sql之外
IF @Name=''
select * from [表] WHERE year=xxx
else
select * from [表] WHERE year=xxx and (@Name='' OR CONTAINS(fName,@Name))

还有其它写法实现这个查询吗?

张泽果的主页 张泽果 | 初学一级 | 园豆:11
提问于:2016-07-28 13:59
< >
分享
所有回答(1)
0
select * from [] WHERE year=xxx and (@Name is null OR CONTAINS(fName,isnull(@Name),'a')

 

悦光阴 | 园豆:2251 (老鸟四级) | 2016-08-20 23:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册