我有一张表格
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|
显然在查询中,在排序中忽略了点。
我如何解决这个问题,让正确的后代排序?
答案 0 :(得分:3)
您可以更改架构以将Quantity
设置为REAL
,也可以在ORDER BY
子句中使用强制转换:
SELECT * FROM myTableName ORDER BY CAST(Quantity AS REAL) DESC;
(在SQLite FLOAT
中是same as REAL
,您可以使用其中之一。)