Sql server 2008 选择匹配结果递减的列表

Sql server 2008 选择匹配结果递减的列表,sql-server-2008,Sql Server 2008,需要知道以最佳匹配顺序递减的方式编写查询以显示搜索结果的最佳方法 例如:搜索参数为姓、名、SSN、DOB、地址 现在,第一行是所有参数都匹配的行。 下一行是匹配的参数数较少的行 等等 请建议 谢谢 Anant似乎是一个简单的案例陈述+添加将是最好的。易于扩展/维护。没有太多开销,使用精确匹配 SELECT lastName, FirstName, SSN, DOB, Address, CASE when lastName = @lastName then 1 else 0 end +

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

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

请建议

谢谢
Anant

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

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

你不能直接这么做。您需要为此需求定义适当的表结构。请提供更多关于需求的信息。以下解决方案在我的案例中效果良好。