Tout ce que je veux faire, c'est saisir les choses par ordre alphabétique et ignorer les majuscules.
db.rawQuery("SELECT " + catName + " FROM "+tableName+" ORDER BY "+catName+" ASC COLLATE NOCASE;", null);
C'est le code que j'utilise ci-dessus, mais il me donne toujours une exception SQLite disant que COLLATE est une erreur de syntaxe.
Android.database.sqlite.SQLiteException: près de "COLLATE": erreur de syntaxe:, lors de la compilation: SELECT Artist FROM testTable COLLATE NOCASE ASC
COLLATE
précède la direction de la commande:
db.rawQuery("SELECT " + catName
+ " FROM " +tableName
+" ORDER BY "+catName+" COLLATE NOCASE ASC;", null);
Mais vous n'avez pas besoin de ASC
- c'est la valeur par défaut, vous pouvez tout aussi bien utiliser:
db.rawQuery("SELECT "+ catName
+" FROM "+ tableName
+" ORDER BY "+ catName +" COLLATE NOCASE;", null);
ajoutez COLLATE NOCASE après orderBy String.
db.query (table, colonnes, selection, selectionArgs, groupBy, having, orderBy + "COLLATE NOCASE ASC");
ici, la commande par ASC ou DESC dépend de vos besoins.
Cela devrait aussi marcher je pense:
db.rawQuery("SELECT "+ catName
+" FROM "+ tableName
+" ORDER BY lower("+ catName +");", null);