0

我有一张这种形式的桌子

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|

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

我怎样才能解决这个问题得到正确的后代排序?

4

1 回答 1

3

您可以将架构更改为设置Quantity为 anREALORDER BY子句中使用强制转换:

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

(在 SQLiteFLOAT中与相同REAL,您可以使用其中任何一个。)

于 2012-12-15T01:39:02.633 回答