Table 명 : Users
위와 같이 DB테이블이 있을경우
userId(String) | name(String) | addressName(String) | type(int) |
test | 가난 | null | 0 |
super | 나나 | 마음이 | 0 |
angel | 다간 | 나라님 | 0 |
poson | 바람 | 다람쥐 | 0 |
enco | koreanam | 처남 | 0 |
위와 같이 DB테이블이 있을경우
정렬을 name과 addressName 기준으로 정렬하려 합니다.
addressName값이 null일경우 name값으로 하고 addressName이 있을경우 addressName으로 합니다.
위에 테이블은 정렬하면
userId(String) | name(String) | addressName(String) | type(int) |
test | 가난 | null | 0 |
angel | 다간 | 나라님 | 0 |
poson | 바람 | 다람쥐 | 0 |
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", null, null, null, select);
위에 select에 들어가있는 order by문을 보시면 한글 영어 숫자 순으로 오름차순해야합니다.
그래서 위처럼한건데 잘안되네요...
도움좀 부탁드립니다. ㅠ_ㅠ
원본 글 주소: http://www.androidside.com/B49/63349
'Android Dev' 카테고리의 다른 글
MediaRecorder 에러 해결. (0) | 2012.12.14 |
---|---|
안드로이드 실시간 네트워트 상태 감시 (0) | 2012.03.15 |
zt-180 (ePad) 2.2 android 업그레이드 방법. (0) | 2011.08.24 |
[안드로이드] 상태바 & 타이틀바 없애기(전체화면만들기) (0) | 2011.08.01 |
kandroid - 37기 안드로이드 개발자 교육 II 후기 (0) | 2011.07.23 |