달력

82025  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
OKJSP 에서 어떤분의 질문에 답글 단 내용
요새 DB를 건드리는 작업이 줄어들어서 미천하던 지식이나마 다 가물가물해져간다
IS_NUMBER 같은 함수가 있지 않았던가? 해서 찾았지만 그런건 없음

방법1. function 을 작성해서 사용
방법2.  TRIM(TRANSLATE(A, '0123456789', '          ')) IS NULL 구문의 이용


// varchar, char 타입의 데이터중 숫자인 데이터는 앞의 0을 제거해서 출력
WITH TB AS (
    SELECT  '0000' A FROM DUAL UNION ALL
    SELECT  '0001' A FROM DUAL UNION ALL
    SELECT  '0011' A FROM DUAL UNION ALL
    SELECT  '1111' A FROM DUAL UNION ALL
    SELECT  '1001' A FROM DUAL UNION ALL
    SELECT  'A111' A FROM DUAL
)
SELECT
    CASE WHEN TRIM(TRANSLATE(A, '0123456789', '          ')) IS NULL
    THEN TO_CHAR(TO_NUMBER(A))
    ELSE A
    END
FROM TB

Posted by InuxKr
|