안녕하세요~
주소록에서 이름과 전화번호를 가져오는 가져오는 부분을 만들고 있는데요~
java를 이용해 초성검색을 하는 소스는 인터넷상에 구할수가 있어서 사용하고 있습니다.
그런데 sqlite 를 사용해 초성검색을 하면 좀 더 빠르게 검색되지 않을까 해서
고수님의 의견을 듣고자 글을 올려봅니다;;

먼저 지금 전화번호와 이름을 가져오는 소스입니다.
public ArrayList<AddressBookData> getPhoneNameNumber() {

  ArrayList<AddressBookData> list = new ArrayList<AddressBookData>();
  String[] projection = new String[] { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME, 
                                    ContactsContract.CommonDataKinds.Phone.NUMBER };

 String where =  "case when "+ContactsContract.Contacts.DISPLAY_NAME + "< 'ㄱ' then SUBSTRING("+
            ContactsContract.Contacts.DISPLAY_NAME+",1,1) when ascii('ㄱ') <= ascii("+
            ContactsContract.Contacts.DISPLAY_NAME + ") and "+
            "ascii("+ContactsContract.Contacts.DISPLAY_NAME+
            "<= ascii('ㅎ') then "+ContactsContract.Contacts.DISPLAY_NAME+
            "when "+ContactsContract.Contacts.DISPLAY_NAME + " < '나' then 'ㄱ' "+
            "when "+ContactsContract.Contacts.DISPLAY_NAME + " < '다' then 'ㄴ' "+
            "when "+ContactsContract.Contacts.DISPLAY_NAME + " < '라' then 'ㄷ' "+
            "when "+ContactsContract.Contacts.DISPLAY_NAME + " < '마' then 'ㄹ' "+
            "when "+ContactsContract.Contacts.DISPLAY_NAME + " < '바' then 'ㅁ' "+
            "when "+ContactsContract.Contacts.DISPLAY_NAME + " < '사' then 'ㅂ' "+
            "when "+ContactsContract.Contacts.DISPLAY_NAME + " < '아' then 'ㅅ' "+
            "when "+ContactsContract.Contacts.DISPLAY_NAME + " < '자' then 'ㅇ' "+
            "when "+ContactsContract.Contacts.DISPLAY_NAME + " < '차' then 'ㅈ' "+
            "when "+ContactsContract.Contacts.DISPLAY_NAME + " < '카' then 'ㅊ' "+
            "when "+ContactsContract.Contacts.DISPLAY_NAME + " < '타' then 'ㅋ' "+
            "when "+ContactsContract.Contacts.DISPLAY_NAME + " < '파' then 'ㅌ' "+
            "when "+ContactsContract.Contacts.DISPLAY_NAME + " < '하' then 'ㅍ' "+
            "else 'ㅎ' end = '" + searchKeyword +"'";

  Cursor cursor = managedQuery(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection, where, null, ContactsContract.Contacts.DISPLAY_NAME + " ASC");

  if (null != cursor) {
   try {
    while (cursor.moveToNext()) {
     String phoneNumber = CommonUtil.removeNonDigit(cursor.getString(2));
     if (CommonUtil.isPhoneNumberValid(phoneNumber) ) {
      addContact(list, cursor.getString(1), CommonUtil.removeNonDigit(cursor.getString(2)));
     }
    }
   } finally {
    cursor.close();
   }
  }
  return list;
 }


이렇게 하려고 했는데 where 가 부분에서 에러가 발생하는데 문법이 틀린것인지.....어쩐것인지
알려주시면 감사하겠습니다~