반응형
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 |
이런식으로 조건을 설정하여 어떤것이 먼저 나올지 정할 수 있게 하면 된다.
출처
반응형
'Programming > iOS' 카테고리의 다른 글
presentModalViewController 호출 시 hierarchy 오류 (1) | 2015.10.22 |
---|---|
Node.js를 통한 Push Test (0) | 2015.10.20 |
UIImage 특정 색상을 투명처리 (0) | 2015.06.30 |
How To Use NSOperations and NSOperationQueues (0) | 2014.11.17 |
Jenkins 설명 자료 (0) | 2014.11.13 |