SELECT 숫자컬럼 FROM 테이블 WHERE REGEXP_INSTR(숫자컬럼, '[^0-9]') != 0;
식으로 숫자컬럼의 제일 앞자리에 숫자가 아닌 경우는 찾았는데요
13자리 모두 숫자가 아닌 데이터를 찾을 수 있는 방법은 없을까요?
by 냉동닭
[2018.07.16 13:59:40]
방법이 없나요?ㅠㅠ
by 우리집아찌
[2018.07.16 14:03:30]
WITH T AS (
SELECT '1312F' TXT FROM DUAL UNION ALL
SELECT 'BCDFDF1' FROM DUAL
)
SELECT TXT , REGEXP_COUNT(TXT,'[^0-9]') CNT
FROM T
by 우리집아찌
[2018.07.16 14:08:07]
-- 전부 숫자일경우
WITH T AS (
SELECT '1312F13456712' TXT FROM DUAL UNION ALL
SELECT '1312F1345ABC2' FROM DUAL UNION ALL
SELECT '1312313412312' FROM DUAL
)
SELECT TXT , REGEXP_COUNT(TXT,'[^0-9]') CNT
FROM T
WHERE REGEXP_COUNT(TXT,'[^0-9]') = 0
by 냉동닭
[2018.07.16 14:31:51]
감사합니다
덕분에 지금 검증 돌리고있습니다
상세하게 쿼리까지 작성해주셔서 고맙습니다~
by 우리집아찌
[2018.07.16 14:17:23]
-- TRANSLATE 이용
WITH T AS (
SELECT '1312F13456712' TXT FROM DUAL UNION ALL
SELECT '1312F1345ABC2' FROM DUAL UNION ALL
SELECT '1312313412312' FROM DUAL
)
SELECT TXT , TRANSLATE(TXT,'1234567890','0000000000')
FROM T
WHERE TRANSLATE(TXT,'1234567890','0000000000') = '0000000000000'
by 마농
[2018.07.16 14:32:18]
-- 사용하신 instr 방법도 앞자리만 체크하는게 아니라 이미 원하시는 결과입니다.
WHERE REGEXP_LIKE(txt, '[^0-9]')
WHERE TRANSLATE(txt, 'a0123456789', 'a') IS NOT NULL
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.