如何根据升序整数来订购sqlite表?

时间:2013-02-18 07:29:52

标签: android sqlite listview

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

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

Select * From tbl_name ORDER BY WithOrder asc

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

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

谢谢!

Parvaz Bhaskar

3 个答案:

答案 0 :(得分:4)

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

重新创建表格,以便8列的类型为WithOrder

答案 1 :(得分:1)

Cursor c =  SQLiteDatabase_OBJ.query("Table_name", null, null, null, null, null, "WithOrder ASC");

试试这个

答案 2 :(得分:0)

尝试一下ORDER BY CAST(WithOrder AS INTEGER) ASC