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
Posted by 사용자 핑구야 날자

댓글을 달아 주세요

  1. 드자이너김군 2009.05.27 10:34 신고  댓글주소  수정/삭제  댓글쓰기

    아~ 요런 프로그램은 너무 어려워용 ㅋㅋ

  2. 나림아빠 2009.05.27 10:41  댓글주소  수정/삭제  댓글쓰기

    안녕하세요. 좋은 글 잘 봤습니다.

    제가 오라클을 잘 모르긴 한데 아래처럼 간단히 작성해도 동일한 결과가 나올 것 같은데요...
    답으로 제시하신 예제는 index search가 안되기 때문에 레코드가 많을 경우 성능에 문제가 있을 것으로 생각됩니다.
    검토를 부탁 드립니다.

    select to_number(trim(tNum)) from dual order by tNum

  3. 건강정보 2009.05.27 12:00 신고  댓글주소  수정/삭제  댓글쓰기

    이게 뭔가? 유심히 보고 있는데
    아직도 이해 못 하고 있습니다~^^

  4. 하수 2009.05.27 12:44 신고  댓글주소  수정/삭제  댓글쓰기

    에고... 넘 어러버요~
    베이직, 코볼, 포트란 세대라.....^^;;

  5. 복돌이^^ 2009.05.27 16:35 신고  댓글주소  수정/삭제  댓글쓰기

    오...포트란으로 그림을......=> 유윈^^

    행복한 하루 되세요