如何使用c#从表中选择最接近的匹配值行?

时间:2016-12-29 09:35:40

标签: sql .net algorithm

假设我有一张桌子(3行x 4列)。

Database Table

考虑一个数据库表,前三行是输入。如果第四行被添加为表的输入,则算法应匹配传入的" A"输入之前的所有" A"表中的输入并找到最接近的匹配,它也应对B,C和D执行相同的操作。最后,它应该选择与输入最匹配的适当行,并且应该选择它。在这种情况下,第一行与传入的第四行最接近,因此应该选择它。

P.S: SQL也可用于实现此目的。

1 个答案:

答案 0 :(得分:0)

以下内容:

select *, abs(A-newA) from table group by A 
  having  abs(A-newA)=min(abs(A-newA))
;
// etc..

其中newA,...将被替换(带有值绑定的预处理语句)和新的条目坐标

select * from table where (abs(A-newA)+abs(B-newB)+...)=
  (select min((abs(A-newA)+abs(B-newB)+...) from table)
;