2012-10-09 78 views
4

嗨我想在SQL中排序一列百分比,但我無法從底部到頂部結果'100%',任何人都有這樣的解決方案?SQL如何按百分比對列進行排序?

我使用concat(x/y * 100,'%')作爲百分比函數,這給了我不同的百分比例如50%,60%,99%,100%。

但是按百分比遞減的順序,然後給了我下面的命令: 99% 60% 50% 100%

感謝

回答

5

by子句中的順序添加此

SELECT ... 
FROM ... 
WHERE ... 
ORDER BY (x/y*100) ASC 

ORDER BY percentage DESC不工作的原因是因爲percentage列是一個字符串而不是數字。

+0

謝謝約翰,這是一個很大的幫助! –

+0

@GlennLow你可以發佈你創建的整個查詢嗎? –

+0

它需要4倍的時間來運行,並仍在運行... –

1

您應該訂購x/y,它會給你正確的排序順序。使用乘以100的表達式,並在最後添加百分比符號來格式化輸出,而不是排序。

+0

感謝你的幫助! –

+0

嗨你能幫我解答嗎?由於x/y desc函數的順序,運行時間很長 –