Запрос SQLite в алфавитном порядке без учета регистра [дубликат]
этот вопрос уже есть ответ здесь:
все, что я хочу сделать, это схватить вещи в алфавитном порядке и игнорировать заглавные буквы.
db.rawQuery("SELECT " + catName + " FROM "+tableName+" ORDER BY "+catName+" ASC COLLATE NOCASE;", null);
Это код, который я использую выше, но он всегда дает мне SQLite исключение, говорящее, что COLLATE является синтаксической ошибкой.
android.база данных.базы данных SQLite.SQLiteException: рядом с "COLLATE": синтаксическая ошибка:, при компиляции: выберите исполнителя из testTable COLLATE NOCASE ASC
3 ответов
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.запрос (таблица, столбцы, выделение, selectionArgs, groupBy, имеющий, orderBy + "COLLATE NOCASE ASC");
здесь, заказ ASC или DESC зависит от вашей потребности.
Это тоже должно работать, я думаю:
db.rawQuery("SELECT "+ catName
+" FROM "+ tableName
+" ORDER BY lower("+ catName +");", null);