我有3个所有可选搜索条件的搜索ui。
其中2个是where语句的简单标准,我应该可以通过以下方式解决:Stored Procedure with optional "WHERE" parameters

最后一个条件是使用全文搜索,在此我将ContainsTable的结果加入其中。我可以使用一些技巧将所有内容放入一个存储过程吗?还是我应该进行两个查询,一个进行全文搜索,而一个不进行全文搜索?

编辑:我也应该把我的查询放在这里,对不起,这是

select Table1.* from Table1
join
(
 select [Key], SUM(Rank) as Rank from
 (
  SELECT [Key], Rank*3 as Rank FROM Table1ShortSearch(@Keywords) union all
  SELECT [Key], Rank*2 as Rank FROM Table1LongSearch(@Keywords)
 ) as RankingTbl
 group by [Key]
) as r
on Table1.Id = r.[Key]

where ( @Status_Id Is Null Or Status_Id = @Status_Id )

order by r.Rank Desc


谢谢。

最佳答案

您可以将所有内容放入一个存储过程中并具有IF语句-http://msdn.microsoft.com/en-us/library/ms182717.aspx

09-26 09:24