DataBase/Oracle

Oracle] 숫자 데이터만 추출하기

이지랩(ezLab) 2022. 12. 29. 18:15
반응형

 

 

참고사항 (먼저확인하기)
REGEXP_로 시작하는 함수(정규식:Regular Expression)는 오라클10g(Oracle10g)부터 지원한다.
이전 버전에서는 사용 할 수 없다.

 

 

숫자만 들어있는 데이터 조회 쿼리 (정수, 실수 포함)
-- 숫자만 조회(정수, 실수 포함)
SELECT  A.NO, A.VL
      , REGEXP_INSTR(A.VL,'^[-]?\d*(\.?\d*)$') AS CHK  -- 1: 숫자, 0:숫자 아님 
  FROM  (
          SELECT '1' NO, '12'      AS VL FROM DUAL UNION ALL
          SELECT '2' NO, '12.5'    AS VL FROM DUAL UNION ALL
          SELECT '3' NO, '+12.0'   AS VL FROM DUAL UNION ALL
          SELECT '4' NO, '-12.1'   AS VL FROM DUAL UNION ALL
          SELECT '5' NO, '12.X'    AS VL FROM DUAL UNION ALL
          SELECT '6' NO, '$121.1'  AS VL FROM DUAL UNION ALL
          SELECT '7' NO, '\122'    AS VL FROM DUAL UNION ALL
          SELECT '8' NO, '-12.123' AS VL FROM DUAL UNION ALL
          SELECT '9' NO, '12X'     AS VL FROM DUAL
        )  A
 WHERE  1=1
   AND  REGEXP_INSTR(A.VL,'^[-]?\d*(\.?\d*)$') = 1    -- 숫자(정수+실수)인 데이터 조회
;

 

조회결과

 

 

 

 

 

반응형