1

我在 android sqlite 中遇到了 ORDER BY 的一些问题。

我正在使用此查询重新排序我的列表视图:

Select * From tbl_name ORDER BY WithOrder asc

其中 WithOrder 是一个整数类型的列。我希望的预期行为是 sqlite 会将行重新排序为 ....8,9,10,11,12.... 但它根据第一个数字将列表重新排序为 ....10 ,11,8,9....

请帮助我用整数的升序值重新排序表...我不能选择任何其他列或数据类型来重新排序,因为当用户重新排序列表时,我严重依赖 WithOrder 进行一般计算。

谢谢!

帕尔瓦兹·巴斯卡

4

3 回答 3

4

数字是根据其数值排序的,而字符串是按字典顺序排序的,从第一个字符开始。特别是,字符1小于字符8,因此任何以1(例如11)开头的字符串都排在任何以 开头的字符串之前8

重新创建您的表,使该WithOrder列具有类型INTEGER

于 2013-02-18T08:36:58.247 回答
1
Cursor c =  SQLiteDatabase_OBJ.query("Table_name", null, null, null, null, null, "WithOrder ASC");

试试这个

于 2013-02-18T07:44:15.110 回答
0

试试这个ORDER BY CAST(WithOrder AS INTEGER) ASC

于 2019-06-28T07:16:02.050 回答