我有一张表[Car],其CarID,Make,Mode,Version,State,City,MinPrice,Maxprice为8列。 我想实现一个包含4个输入参数的搜索算法,如Make,City,MinPrice,MaxPrice
如何为每个输入参数指定权重。
请建议我编写搜索查询,首先给出AND结果,然后OR结果跟随AND结果,基于4个输入参数的权重。
答案 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