2我遇到了大麻烦,我正在重构一个非常大的全文搜索程序,我发现了一个非常重要的外部应用:
select top 1 *
from tablea
where
column1 like
case
when @value = 1 or @value = 2 then '%' + @something + '%'
else '%'
end
这里的逻辑是:如果@value为1或2,请使用@something获取第一个寄存器。否则,请注册。
我现在需要的是:
select top 1 *
from tablea
where
case
when @value = 1 or @value = 2 then contains(column1, @something)
else 1 = 1
end
上面的代码不起作用,形成错误,我不知道如何解决这个问题。
答案 0 :(得分:1)
select top 1 *
from tablea
where
(@value IN (1,2) AND (@something = '""' OR contains(column1, @something)))
OR @value NOT IN (1,2)