ORDER BY 到另一个值的距离

Ben*_*Ben 2 sql t-sql sql-server distance sql-order-by

假设我们有一张这样的桌子

id|value
--------
1 | 50
2 | 19
3 | 100
4 | 21
5 | -10
Run Code Online (Sandbox Code Playgroud)

如何使用ORDER BY运算符按值与另一个值的距离对值进行排序?

SELECT * FROM table ORDER BY nearest(value,30) DESC
Run Code Online (Sandbox Code Playgroud)

要获取此表:

id|value
--------
4 | 21
1 | 50
2 | 19
5 | -10
3 | 100
Run Code Online (Sandbox Code Playgroud)

Pau*_*l92 5

您可以使用:

SELECT * FROM table ORDER BY abs(value - 30) ASC
Run Code Online (Sandbox Code Playgroud)