66

私がやりたいのは、アルファベット順にものをつかみ、大文字を無視することです。

db.rawQuery("SELECT " + catName + " FROM "+tableName+" ORDER BY "+catName+" ASC COLLATE NOCASE;", null);

これは私が上で使用しているコードですが、COLLATEは構文エラーであるというSQLite例外が常に発生します。

android.database.sqlite.SQLiteException:near "COLLATE":構文エラー:、コンパイル中:SELECT Artist FROM testTable COLLATE NOCASE ASC

4

3 に答える 3

168

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);
于 2011-05-11T00:53:37.267 に答える
2

これもうまくいくはずです:

db.rawQuery("SELECT "+ catName 
        +" FROM "+ tableName 
    +" ORDER BY lower("+ catName +");", null);
于 2015-03-03T20:22:24.477 に答える