选择减少匹配结果的列表

时间:2017-01-09 13:40:25

标签: sql-server-2008

需要知道编写查询的最佳方式,以减少最佳匹配顺序显示搜索结果。

例如:搜索参数是姓氏,名字,SSN,DOB,地址 现在,第一行将是所有参数匹配的行。 下一行将是较少数量的参数匹配的行 等等。

enter image description here

请建议!

由于 了Anant

1 个答案:

答案 0 :(得分:0)

似乎是一个简单的案例陈述+添加将是最好的。易于扩展/维护。没有多少开销,使用完全匹配。

SELECT lastName, FirstName, SSN, DOB, Address, 
  CASE when lastName = @lastName then 1 else 0 end + 
  CASE when FirstName = @FirstName then 1 else 0 end + 
  CASE when DOB = @DOB then 1 else 0 end +
  CASE when Address1 = @Address1 then 1 else 0 end + 
  CASE when SSN = @SSN_No then 1 else 0 end as Matched 
FROM Table
ORDER BY matched Desc