select code from test order by code; 이렇게 하니 10.0.0 2.0.10 2.0.10.1 2.0.8 2.0.9 2.0.9.12 2.0.9.2 이렇게 나오네요.. 어떻게 sort해야 제대로 나올지 답변부탁드립니다. 자료형은 varchar입니다.
방법을... 모르겠는데요. ㅎㅎ
복잡하게 스트링 함수 쓰고 해서 어찌하면 될 수도 있겠지만 차라리 저장되는 포멧을 바꾸거나 소트용 컬럼을 하나 더 만드는게 어떨까요?
10.00.00
02.00.10
02.00.10.01
02.00.08
02.00.09
이런식으로 저장되게 말이죠. 물론 표시할 때는 좀 가공해서 앞에 0은 지워버려야겠죠.
저라면 그렇게 할 것 같습니다. ^^
괘안은 방법이네요^^ 입력 출력시 수정해야되는 번거로움이 있지만.. 쫌만 기다려보다 더좋은 방법이 없으면. 성철님 방법으로.
사실 포멧을 바꾼다면 굳이 '.'까지도 필요 없겠죠.
100000
020010
02001001
020008
020009
이렇게..ㅎㅎ
더 나가서 16진수로 할 수도 있네요. 이렇게 하면 0~255까지 표현이 가능하니까요.
0a0000
02000a
02000a01
좋은 결과 있기 바랍니다. ^^
이렇게 하면 되지 않을까요?
select code from table order by string_to_array(code, '.')::int[];
물론 버젼이 모두 숫자로 이루어져 있어야 하겠죠?
안그럼 형변환에서 애러 나겠죵..
왕~ tyro님 멋져요. +_+)b