我在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
答案 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