首页 > 解决方案 > 大约获得最近的行

问题描述

我有一张这样的桌子:

表测试

Col1  Col2  Col3  Col4
 5     6     7     8
 12    6     5     6
 2     3.5   6     1

我想找到最近的行:4、5.75、7.2、6 一个人可以找到它(第 1 行是答案),但是我怎样才能为计算机编写查询来找到它?

标签: sqlsql-server

解决方案


我将“最接近”解释为“表值与提供值之间的绝对差异之和最小”:

select top 1 col1,col2,col3,col4
from yourtable
order by abs(col1-4)+abs(col2-5.75)+abs(col3-7.2)+abs(col4-6) asc

推荐阅读