it-swarm.com.de

SQLite-Abfrage in alphabetischer Reihenfolge ohne Berücksichtigung der Groß- und Kleinschreibung

Alles, was ich tun möchte, ist das Zeug in alphabetischer Reihenfolge zu greifen und die Großbuchstaben zu ignorieren.

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

Dies ist der Code, den ich oben verwende, aber es gibt immer eine SQLite-Ausnahme, die besagt, dass COLLATE ein Syntaxfehler ist.

Android.database.sqlite.SQLiteException: near "COLLATE": Syntaxfehler: beim Kompilieren: SELECT Artist FROM testTable COLLATE NOCASE ASC

63

COLLATE geht vor der Bestellrichtung:

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

Aber Sie brauchen das ASC nicht - das ist die Standardeinstellung, daher können Sie auch Folgendes verwenden:

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

fügen Sie nach orderBy String COLLATE NOCASE hinzu.

db.query (Tabelle, Spalten, Auswahl, selectionArgs, groupBy, having, orderBy + "COLLATE NOCASE ASC");

hier hängt die Reihenfolge nach ASC oder DESC von Ihrem Bedarf ab.

7
minhazur

Das sollte auch funktionieren, denke ich:

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