정렬하는 쿼리 질문입니다.

cksql 2015.01.30 08:59 Views : 4324

table1에는 파일명과 그파일의 파일버전이 입력되어 있습니다.
   table1
name    version
a       5.1.235.0
a       5.1.235.1
b       5.3.254.1
b       5.3.254
c       5.2.1
d       4.235.1.1
이런식으로 되어있습니다.
지금 각 파일명마다 version을 최신순으로 정렬시켜야 하는데 데이터타입이 nchar여서 그대로 정렬시키면 
문자로 정렬을 시켜버립니다. 그래서 '.'을 기준으로 각각의 숫자를 비교하려고 합니다.
그래서 아래와 같은 방식으로 정렬을 시키려고 했는데
문제는 각 version들이 '.'의 개수도 다르고 '.'이 언제 또 생길지 모른다는 점과 마지막엔 '.'없어서
마지막 숫자를 어디까지 자를 것인지 기준이 없어져 버립니다.
또 '.'이 길어질수록 쿼리를 생각해내기가 너무 복잡해져버립니다.
혹시 정렬 시킬 수 있는 다른 방법이나 있을까요...? 다른 방법이 없어서 아래 쿼리와 같이
쓸수밖에 없다면.. '.'개수가 다른건 어떻게 해결하고 마지막 숫자는 어떻게 잘라내서 비교를 해야 할까요...
select name
     , version, 
     --첫문자부터 처음나오는 '.'전까지
     , cast(SUBSTRINGversion, 1, CHARINDEX('.', version)-1) as int) as 첫번째
     --처음 나오는 '.' 다음 숫자부터 두번째 나오는 '.' 전 숫자까지 자르기
     , cast(substring(version, CHARINDEX('.', version)+1, (charindex('.', version, charindex('.', version)+1)) - (CHARINDEX('.', version)+1)) as int) as 두번째
from table1
order by 첫번째 desc, 두번째 desc

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 237679
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 94967
8524 행을 두개의 열로 바꾸는것?? [4] 클리티에 2015.02.05 4047
8523 접속 오류 - 연결 문자열이 잘못되었습니다 [1] 생초보 2015.02.04 5561
8522 Z governance라는 라이선스에 대한 정보를 얻을 수 있을까요? 운치 2015.02.04 2361
8521 두개의 테이블을 JOIN할 때 질문입니다. [2] 사이드사이드 2015.02.03 3101
8520 Telnet 연결은 되는데 UDL 파일 만들어서 하려고 하면 연결이 안되는 이유 망토가좋아 2015.02.03 3128
8519 누적합계 쿼리 질문입니다. [6] 깨비꼬비 2015.02.03 11321
8518 SQL프로파일러 질문 드립니다. [1] akfflr 2015.02.03 2825
8517 CURSOR 문에서 USE DATABASE 가 잘 안먹어요. ㅠ [4] 더따뜻한 2015.02.03 2748
8516 trigger를 이용하여 프로시저의 로그 이벤트 남기는 중에... [1] 더따뜻한 2015.02.02 2751
8515 GRANT VIEW SERVER STATE TO [사용자명] 관련 [1] 더따뜻한 2015.02.02 3304
8514 쿼리나 프로시저로 테이블의 어느 데이터를 지운 것에 대한 이력 [2] 상남자 2015.02.02 2362
8513 사용자 삭제가 안되서요.ㅠ [1] 더따뜻한 2015.02.02 5127
8512 두개의 테이블에서 날짜별로 금액 합을 계산하는 쿼리 [1] embster 2015.01.31 3828
8511 ApexSQL Refactor 사용시 정렬 오류 [2] 흑흑 2015.01.30 3006
» 정렬하는 쿼리 질문입니다. [11] cksql 2015.01.30 4324
8509 클러스터 인덱스를 datetime 컬럼에 괜찮을까요? [2] jwgye 2015.01.29 3173
8508 ADO, BDE, ODBC 연결 속도 문제... 랜덤의세계 2015.01.29 5205
8507 같은 서버에서 서로 다른 DB 트리거 관련문의ㅜㅜ 홍야홍야 2015.01.29 3490
8506 실제테이블 용량과 MDF 파일 용량 차이 질문드립니다. [2] 빠그도리 2015.01.29 4541
8505 primary key 선정에 있어서 궁금증이 생겨 질문 드립니다. [1] jwgye 2015.01.29 4720





XE Login