2009년 4월 16일 목요일
Oracle LPAD
정말 쉬운건 없다...
너무 단순하게만 생각을 하면 안되는거 같다...
어제 입력받은 값에 따라서 정렬을 다르게 해줘야 하는 일이 생겼다...
그래서 무심코... 걍 늘~ 하던대로 DECODE 문장을 날렸다...
이렇게...
ORDER BY DECODE(:Indata, 'L30', TST_CD, TO_NUMBER(DIS_SEQ))
착각이다.
'TST_CD' 이 값이 문자이기 때문에 TO_NUMBER가 먹질 않는다는 것이다...
그래서 나온 방법이 바로 LPAD Function이다.
머 우선 기본적인 설명은 원하는 만큼 왼쪽으로 원하는 문자를 채워준다는 것이다.
즉...
LPAD(DIS_SEQ, 10, '0')
이 것은 왼쪽으로 문자 '0'을 10자리 맞춰서 채우라는 것이다.
만일 'DIS_SEQ'의 값이 '12345' 이라면 결과는 '0000012345' 이렇게 된다는 것이다.
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기