私がやりたいのは、アルファベット順に並べて、大文字を無視することです。
db.rawQuery("SELECT " + catName + " FROM "+tableName+" ORDER BY "+catName+" ASC COLLATE NOCASE;", null);
これは私が上記で使用しているコードですが、COLLATEは構文エラーであるというSQLite例外を常に提供します。
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);
orderBy文字列の後にCOLLATE NOCASEを追加します。
db.query(table、columns、selection、selectionArgs、groupBy、having、orderBy + "COLLATE NOCASE ASC");
ここで、ASCまたはDESCによる注文は必要に応じて異なります。
これも動作するはずです:
db.rawQuery("SELECT "+ catName
+" FROM "+ tableName
+" ORDER BY lower("+ catName +");", null);