IT TIP

대소 문자를 구분하지 않는 알파벳 순서의 SQLite 쿼리

itqueen 2020. 11. 22. 21:03
반응형

대소 문자를 구분하지 않는 알파벳 순서의 SQLite 쿼리


내가 원하는 것은 알파벳 순서로 물건을 잡고 대문자를 무시하는 것입니다.

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


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);

orderBy String 뒤에 COLLATE NOCASE를 추가하십시오.

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

여기에서 ASC 또는 DESC의 주문은 필요에 따라 다릅니다.


이것도 작동해야한다고 생각합니다.

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

참고 URL : https://stackoverflow.com/questions/5958039/sqlite-query-in-non-case-sensitive-alphabetical-order

반응형