2012-10-09 77 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函数的顺序,运行时间很长 –