0

我有一排可以从 0 到 1 的浮点类型。我想按最接近 0.5 的结果排序。所以我尝试了:

SELECT * FROM a ORDER BY ABS(a.value - 0.5) desc

但它不起作用。它只是返回 0,然后是 1,然后是 0(看起来是随机的)。有任何想法吗?

表 a 有一行叫做 value,例如:

A value = 1
B value = 0
C value = 0.5
D value = 0.3

我希望它按以下顺序返回它们:

C (ABS(value - 0.5) = 0)
D (ABS(value - 0.5) = 0.2)
A (ABS(value - 0.5) = 0.5)
B (ABS(value - 0.5) = 0.5)
4

1 回答 1

1
    select abs((a.value-0.5)) as x from a order by x asc;
    x
    ----------
    0.0
    0.2
    0.5
    0.5

这假设值的类型是浮点数而不是整数,我测试了浮点数,但不是整数。

于 2013-03-26T05:23:42.267 回答