2013-03-26 22 views
0

我有一行float類型可以從0變爲1.我想以最接近0.5的結果排序我的結果。所以我嘗試過:在SQL語句中使用ABS和十進制算術

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

但它不工作。它只是返回0,然後1,然後0(它似乎是隨機的)。有任何想法嗎?

表中有一個名爲值列,例如:

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

粘貼一些示例數據和所需的輸出。 – 2013-03-26 04:49:23

+1

對不起,我很笨!我應該完成ASC而不是DESC ... – george 2013-03-26 04:58:50

回答

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

這假定該值的類型是浮點數不是整數,我測試了浮點數,但不是整數。

相關問題