by 냉동닭 [SQL Query] 숫자 문자 찾기 INSTR REGEXP_INSTR [2018.07.16 13:16:14]
안녕하세요 질문있어요!
13자리 숫자로 이뤄진 컬럼에서 문자가 포함되어 있는 지 확인을 하고 싶습니다.
SELECT 숫자컬럼 FROM 테이블 WHERE REGEXP_INSTR(숫자컬럼, '[^0-9]') != 0;
식으로 숫자컬럼의 제일 앞자리에 숫자가 아닌 경우는 찾았는데요
13자리 모두 숫자가 아닌 데이터를 찾을 수 있는 방법은 없을까요?
방법이 없나요?ㅠㅠ
WITH
T
AS
(
SELECT
'1312F'
TXT
FROM
DUAL
UNION
ALL
'BCDFDF1'
)
TXT , REGEXP_COUNT(TXT,
'[^0-9]'
) CNT
-- 전부 숫자일경우
'1312F13456712'
'1312F1345ABC2'
'1312313412312'
WHERE
REGEXP_COUNT(TXT,
) = 0
감사합니다
덕분에 지금 검증 돌리고있습니다
상세하게 쿼리까지 작성해주셔서 고맙습니다~
-- TRANSLATE 이용
TXT , TRANSLATE(TXT,
'1234567890'
,
'0000000000'
TRANSLATE(TXT,
) =
'0000000000000'
-- 사용하신 instr 방법도 앞자리만 체크하는게 아니라 이미 원하시는 결과입니다.
REGEXP_LIKE(txt,
TRANSLATE(txt,
'a0123456789'
'a'
IS
NOT
NULL