我需要使用两列检索具有最接近值的行。
下面的例子适用于一列,但是两列呢?

order by abs(Column_X - myvalue_X) limit 1

我需要这样的东西:
order by abs(Column_X - myvalue_X),abs(Column_Y - myvalue_Y) limit 1 //wrong row

我在用postgres和postgis

最佳答案

我不确定postgre语法和你到底在做什么,但是如果你想与2字段进行比较,那么使用Euclidean distance
像这样的东西

order by ((Column_X - myvalue_X)*(Column_X - myvalue_X) + (Column_Y - myvalue_Y)*(Column_Y - myvalue_Y)) limit 1

关于sql - 如何为两列选择最接近的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19137956/

10-13 09:38