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' 이렇게 된다는 것이다.

댓글 없음:

댓글 쓰기