SQLite查询以非大小写敏感的字母顺序排列

Ant*_*ano 64 sql sqlite android sql-order-by collate

我想要做的就是按字母顺序抓住这些东西并忽略大写字母.

db.rawQuery("SELECT " + catName + " FROM "+tableName+" ORDER BY "+catName+" ASC COLLATE NOCASE;", null);
Run Code Online (Sandbox Code Playgroud)

这是我上面使用的代码,但它总是给我一个SQLite异常,说COLLATE是一个语法错误.

android.database.sqlite.SQLiteException:near"COLLATE":语法错误:,同时编译:SELECT Artist FROM testTable COLLATE NOCASE ASC

OMG*_*ies 163

COLLATE 在订单方向之前:

db.rawQuery("SELECT " + catName 
           + " FROM " +tableName 
        +" ORDER BY "+catName+" COLLATE NOCASE ASC;", null);
Run Code Online (Sandbox Code Playgroud)

但你不需要ASC- 这是默认值,所以你也可以使用:

db.rawQuery("SELECT "+ catName 
            +" FROM "+ tableName 
        +" ORDER BY "+ catName +" COLLATE NOCASE;", null);
Run Code Online (Sandbox Code Playgroud)


min*_*zur 7

在orderBy String之后添加COLLATE NOCASE.

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

在这里,ASC或DESC的订单取决于您的需要.