varchar 형의 문자열이 들어가있는 칼럼이 있다. 예를들어
ex4_1
ex4_10
ex4_11
ex4_12
...
ex4_2
ex4_20
ex4_21
위와 같은 형태로 레코드가 차례로 들어가 있을경우, '_' 구분자 뒤의 숫자순서대로 차례로 정렬하고 싶다.
Cast 와 Substring, CharIndex 함수를 이용해보자.
select * 테이블 order by CAST(SUBSTRING(문자열,CharIndex('_',문자열)+1,Len(문자열)) AS int) ASC
결과화면은
ex4_1
ex4_2
ex4_3
...
ex4_10
ex4_11
자~ 그런데, 더욱쉽게 1, 11, 12, 13 ... 2, 20 , 21, 22, .. 이런식으로 들어가 있다면
order by CAST(문자열 as int) ASC