본문 바로가기

Programming/iOS

ios sqlite 정렬 기준 설정

반응형

iOS의 sqlite는 기본적으로

특수기호 - 영어 - 한글 순으로 정렬하도록 되어 있다.


Andoid 같은 경우

COLLATE LOCALIZED를 통해

해당 폰의 정렬 기준에 따라 바꿀 수 있지만

iOS는 해당 구문을 지원하지 않는다

(안드로이드에서 커스텀하게 제공하는 문구인듯 하다)


그래서

ORDER BY에서  정렬 문자 순서를 원하는 대로 지정하도록 해야

결과값 출력 시 원할하게 나올 듯 하다.


아래는

구문이다.


샘플 테이블

Table Name : Sample

ID 

Value 

1

(주)다음 

2

Daum

3

티스토리 

4

카카오

5

iOS



샘플 쿼리문

SELECT * FROM Sample 

ORDER BY (

CASE 

WHEN substr(Value, 1, 1) BETWEEN 'ㄱ' AND '힣' THEN 2 

WHEN substr(Value, 1, 1) BETWEEN 'A' AND 'Z' THEN 3 

WHEN substr(Value, 1, 1) BETWEEN 'a' AND 'z' THEN 3

ELSE 1 

END), 

Value ASC


간단히 설명하면

ORDER BY에 when 구문을 통해 정렬 기준을 정한다

이때 1,2,3,4등 숫자를 통해 어느 것이 제일 위로 갈지 아래로 갈지 결정 하게 해준다

(현재 쿼리문에서는 특수문자 - 한글 - 영어 순으로 정렬하게 했다)



결과값

(주)다음 

티스토리

카카오

Daum

iOS




이런식으로 조건을 설정하여 어떤것이 먼저 나올지 정할 수 있게 하면 된다.




출처

http://kmshack.tistory.com/entry/SQLITE-사용자-로케일-순으로-정렬-하기

반응형