본문 바로가기

Android Dev

SQLite 정렬 조회 질문드립니다.

Table 명 : Users
 userId(String)  name(String) addressName(String)   type(int)
 test 가난  null 
 super  나나  마음이 
 angel  다간  나라님 
 poson  바람 다람쥐  0
 enco koreanam 처남 0

위와 같이 DB테이블이 있을경우 
정렬을 name과 addressName  기준으로 정렬하려 합니다.
addressName값이 null일경우 name값으로 하고 addressName이 있을경우 addressName으로 합니다.
위에 테이블은 정렬하면

userId(String)  name(String) addressName(String)   type(int)
 test 가난  null 
 angel 다간  나라님
 poson  바람  다람쥐
 super 나나 마음이 0
 enco koreanam 처남 0

이렇게 오름차순으로 정렬하려고 합니다.
현재 제가 써논 소스는 하단과 같습니다.





String[] columns = new String[] {"userid""name","ctype""addressName"};


String select = "case"+
  " when substr(COALESCE(addressName, name), 1, 1) BETWEEN 'ㄱ' AND '힣'  then 1 "+

  " when substr(COALESCE(addressName, name), 1, 1) BETWEEN 'A' AND 'Z' then 2 "+  

  " when substr(COALESCE(addressName, name), 1, 1) BETWEEN 'a' AND 'z' then 3 "+  

  " else 4 end, COALESCE(name, addressName) COLLATE LOCALIZED ASC";


mDBHelper.getDB().query(DatabaseHelper.Users, columns, "type=0"nullnullnull, select);



위에 select에 들어가있는 order by문을 보시면 한글 영어 숫자 순으로 오름차순해야합니다.


 

그래서 위처럼한건데 잘안되네요...

도움좀 부탁드립니다. ㅠ_ㅠ

원본 글 주소: http://www.androidside.com/B49/63349