마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

SQLite 컬럼 다중정렬 질문입니다.

0 추천
String query = "select * from daylist order by daychk asc,CAST(substr(daychk,5,2)as INTEGER) asc";

 

현재 daychk라는 Column에 TEXT형태로

D - 12

D - 4

D + 3

의 순서로 데이터값이 존재합니다.

여기서 daychk로 asc정렬을 한 후, 뒤에 숫자만 CAST연산자로 INTEGER형식으로 변경 후

 다중 정렬을 하려고 시도해 보았는데, 정상적으로 작동하질 않네요

정렬 시

D + 3

D - 12

D - 4

라고만 정렬이됩니다.

혹시 한 컬럼내부에서 다중정렬을 사용할 수는 없나요?
익명사용자 님이 2016년 10월 17일 질문

1개의 답변

0 추천

원하시는 게 daychk을 dday의 날짜에 따라 순서대로 정렬하시는 거 아닌지요? 그렇다면 같은 칼럼을 두번 정렬하실 필요가 없을 듯 합니다. 어차피 첫번째 정렬 결과에 의해서 두번째는 적용이 안될 듯 합니다. 첫번째 정렬은 제거하시는게 맞지 않난 싶습니다.

select *
  from 
(
select *,
       cast(substr(daychk, 5) as integer) as dday
 from daylist
) t
order by dday asc

 

spark (227,930 포인트) 님이 2016년 10월 17일 답변
spark님이 2016년 10월 17일 수정
dday의 날짜를 기준으로 정리하였더니,
현재날짜 기준으로 -, + 를 표시하게 만들어 두었는데 여기서 구분이 안되더라구요.
그래서 문자열 기준으로 -와 +를 먼저 구분 후, 뒤의 숫자로 다시 한번 정렬하려고 하였습니다.
...