web-dev-qa-db-ja.com

大文字と小文字を区別しないアルファベット順のSQLiteクエリ

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

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

63

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);
162
OMG Ponies

orderBy文字列の後にCOLLATE NOCASEを追加します。

db.query(table、columns、selection、selectionArgs、groupBy、having、orderBy + "COLLATE NOCASE ASC");

ここで、ASCまたはDESCによる注文は必要に応じて異なります。

7
minhazur

これも動作するはずです:

db.rawQuery("SELECT "+ catName 
        +" FROM "+ tableName 
    +" ORDER BY lower("+ catName +");", null);
2
dudeman