-3

我有一个用户输入框,在我的 SQL 数据库中查询一列数字,例如:

2.0
3.0
4.0
5.0
6.0
7.0
8.0

用户必须输入一个数字,然后填充数字列表的特定顺序以响应用户的输入。因此,如果用户输入是 4.0,那么我希望显示数据库查询

4.0,3.0,5.0,2.0,6.0,7.0,8.0.  

为了分解结果,我希望结果模式显示与输入最接近的数字(4.0)的数据库结果,然后下一个结果(如果可用)降低 1 度(3.0),然后升高 1 度(5.0),然后降低两度 (2.0),再升高两度 (6.0)。7.0 和 8.0 数字以数字形式显示,因为没有与之匹配的低点。

如何为这种结果模式设置查询?

4

1 回答 1

1
SELECT  *
FROM    mytable
ORDER BY
        ABS(value - 4.0), SIGN(value - 4.0)

请参阅SQLFiddle

于 2013-04-18T16:33:20.047 回答