当前位置: 代码迷 >> Sql Server >> 取最接近的一条记录,该怎么解决
  详细解决方案

取最接近的一条记录,该怎么解决

热度:132   发布时间:2016-04-27 14:03:58.0
取最接近的一条记录
表有3列
坐标X 坐标Y 记录
1.1 2.3 xxxx
................


这些坐标有的连续 有的不连续

现在给出 坐标 90.45 20.22

如果有这个坐标那么就返回这条记录 如果没有就返回最接近的坐标的记录

请问怎么写这条语句

(PS:这个表有980w条记录)

------解决方案--------------------
SQL code
select top 1 *from tborder by abs(90.45-[坐标X])+abs(20.22-[坐标Y])
------解决方案--------------------
SQL code
select top 1 *from taborder bysqrt(power(坐标X-90.5,2)+power(坐标Y-20.22,2))
------解决方案--------------------
SQL code
select top 1 * from tb order by ((x - 90.45 )*(x - 90.45 ) + (y - 20.22)*(y - 20.22))
  相关解决方案