我想要做的就是按字母顺序抓住这些东西并忽略大写字母。
db.rawQuery("SELECT " + catName + " FROM "+tableName+" ORDER BY "+catName+" ASC COLLATE NOCASE;", null);
这是我上面使用的代码,但它总是给我一个SQLite异常,说COLLATE是一个语法错误。
android.database.sqlite.SQLiteException:near“COLLATE”:语法错误:,同时编译:SELECT Artist FROM testTable COLLATE NOCASE ASC
答案 0 :(得分:162)
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);
答案 1 :(得分:7)
在orderBy String之后添加COLLATE NOCASE。
db.query(表,列,选择, selectionArgs,groupBy,having, orderBy +“COLLATE NOCASE ASC”);
这里,ASC或DESC的订单取决于您的需要。
答案 2 :(得分:2)
我认为这也应该有效:
db.rawQuery("SELECT "+ catName
+" FROM "+ tableName
+" ORDER BY lower("+ catName +");", null);