Все, что я хочу сделать, это захватить материал в алфавитном порядке и игнорировать заглавные буквы.
db.rawQuery("SELECT " + catName + " FROM "+tableName+" ORDER BY "+catName+" ASC COLLATE NOCASE;", null);
Это код, который я использую выше, но он всегда дает мне исключение SQLite, говорящее, что COLLATE является синтаксической ошибкой.
android.database.sqlite.SQLiteException: рядом с "COLLATE": синтаксическая ошибка: при компиляции: SELECT Artist FROM testTable COLLATE NOCASE ASC
COLLATE
идет до направления ордера:
db.rawQuery("SELECT " + catName
+ " FROM " +tableName
+" ORDER BY "+catName+" COLLATE NOCASE ASC;", null);
Но вам не нужен ASC
- по умолчанию, чтобы вы могли просто использовать:
db.rawQuery("SELECT "+ catName
+" FROM "+ tableName
+" ORDER BY "+ catName +" COLLATE NOCASE;", null);
добавить COLLATE NOCASE после строки OrderBy.
db.query(таблица, столбцы, выбор, selectionArgs, groupBy, имеющий, orderBy + "COLLATE NOCASE ASC" );
здесь, порядок от ASC или DESC зависит от ваших потребностей.
Это тоже должно работать:
db.rawQuery("SELECT "+ catName
+" FROM "+ tableName
+" ORDER BY lower("+ catName +");", null);