SQLite lưu số dưới dạng TEXT, sắp xếp theo thứ tự từ điển (lexicographic) sai so với số. Cần cast sang số khi ORDER BY.
Ví dụ: bảng SalaryDetails(id, name, salary TEXT). Truy vấn sắp xếp lương giảm dần:
Cursor res = db.rawQuery(
"SELECT * FROM " + CONTACTS_TABLE_NAME + " ORDER BY CAST(salary AS DECIMAL(6,2)) DESC",
null);
Các bước demo: tạo project, layout (EditText name/salary, Button Save/Refresh/Update, ListView), DatabaseHelper extends SQLiteOpenHelper, insert/getAllContacts/update/delete.
Khi bấm Refresh, ListView hiển thị tên theo lương DESC đúng kiểu số.