无法在SQLite中正确排序值

时间:2012-12-15 01:32:34

标签: android sqlite android-sqlite

我有一张表格

Name|Quantity|
Item1|600.2|
Item2|8.12|
Item3|78|
Item4|9.723|

其中所有数量值均为文本

我想按照后代顺序对所有项目进行排序,所以我尝试了这个

Cursor c = mDb.rawQuery("SELECT *, CAST(myTableName.Quantity as FLOAT) as Quantity FROM myTableName ORDER BY Quantity desc", null);

但结果是这个

Item4|9.723|
Item2|8.12|
Item3|78|
Item1|600.2|

显然在查询中,在排序中忽略了点。

我如何解决这个问题,让正确的后代排序?

1 个答案:

答案 0 :(得分:3)

您可以更改架构以将Quantity设置为REAL,也可以在ORDER BY子句中使用强制转换

SELECT * FROM myTableName ORDER BY CAST(Quantity AS REAL) DESC;

(在SQLite FLOAT中是same as REAL,您可以使用其中之一。)