我有一行类型为float,可以从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)
答案 0 :(得分:1)
select abs((a.value-0.5)) as x from a order by x asc;
x
----------
0.0
0.2
0.5
0.5
这假设值的类型是float而不是整数,我测试了float,但不是整数。