본문 바로가기
컴퓨터&전자제품

오라클 Oracle 문자형의 숫자를 숫자형으로 Sort하려는데 이상하게 않되요

by 핑구야 날자 2009. 5. 27.
728x90
반응형

tNum은 문자형(as string)
tNum는 숫자가 들어가 있습니다.('2','5 ','12','4 0',' 13'...)

select to_number(tNum) from dual order by to_number(tNum)
-> tNum의 문자로 선언된 숫자를  숫자형으로 변환하여 정렬합니다.
    문장 수행 오류
    to_number를 사용했는데 왜 않될까요? 데이타에 공백이 포함되어 있는 정보가 있을 수 있습니다.
    숫자만 있으면 다행이지만 문자형이라 프로그램에서 Insert하는 내용에 따라 공백이 저장될
    가능성도 있습니다.
    숫자가 저장 된 것처럼 보이지만 '5 ',' 13', '4 0' 처럼 말이죠
    보통의 경우는 원하는 결과가 나옵나다.
    그러나 결과가 원하는대로 나오지 않을 경우는 공백의 치환이 필요하니 기억하시기 바랍니다.

select to_number(replace(tNum,' ' ,'')) from dual order by to_number(replace(tNum,' ' ,''))
-> replace문을 이용하시면 원하는 결과가 나옵니다.
     2
     5
    12
    13
    40
728x90
반응형

댓글12