我正在使用DB Browser for DBite,(版本3.10.0,Qt版本5.7.1,SQLCipher版本3.15.2),我有一个列,我想先排序最高值。我用了:
SELECT first_name, last_name, Totalclaims
FROM workingdata
ORDER BY Totalclaims Desc;
问题是我的查询有$993.00
被视为大于$9920.00
。显然,过滤器无法正确识别小数位。任何建议如何解决这个问题?
清理Totalclaims列,这应该为您订购。
SELECT first_name, last_name, cast(replace(Totalclaims,'$', '') as SIGNED) as TotalClaims_Clean
FROM workingdata
ORDER BY Totalclaims_Clean Desc;
- tonypdmtr写道:尝试使用ORDER BY强制转换(替换(Totalclaims,'$','')为浮动)描述;
它就像一个魅力。
如果你总是有两个小数位,那么先按Totalclaims
的长度排序,然后再按Totalclaims
排序。
编辑:
SELECT first_name, last_name, Totalclaims
FROM workingdata
ORDER BY length(Totalclaims) desc, Totalclaims Desc;