SQL搜索查询,如何为每个输入参数分配权重以及如何按输入参数的权重对结果进行排序,

时间:2012-02-17 14:06:34

标签: sql

我有一张表[Car],其CarID,Make,Mode,Version,State,City,MinPrice,Maxprice为8列。 我想实现一个包含4个输入参数的搜索算法,如Make,City,MinPrice,MaxPrice

如何为每个输入参数指定权重。

请建议我编写搜索查询,首先给出AND结果,然后OR结果跟随AND结果,基于4个输入参数的权重。

1 个答案:

答案 0 :(得分:4)

尝试类似:

select * from [Car]
where Make = @Make or 
      City = @City or 
      MinPrice >= @MinPrice or 
      MaxPrice <= @MaxPrice
order by 
      case when Make = @Make then 3 else 0 end + 
      case when City = @City  then 2 else 0 end + 
      case when MinPrice >= @MinPrice then 1 else 0 end + 
      case when MaxPrice <= @MaxPrice then 1 else 0 end
      desc