sourcetip

문자열에 숫자가 포함되어 있는지 확인하는 방법

fileupload 2023. 10. 25. 23:41
반응형

문자열에 숫자가 포함되어 있는지 확인하는 방법

문자열에 숫자가 포함되어 있는지 확인해야 합니다.아무 번호나.문자열이 숫자인지 아닌지가 아니라 문자열이 숫자를 포함하는 경우입니다.

예:

'test' = 숫자 없음.

'test2' =에 숫자가 포함되어 있습니다.

정규식 사용:

SELECT *
FROM test
WHERE REGEXP_LIKE(testcol, '[[:digit:]]');

정규식 사용 안 함:

SELECT *
FROM test
WHERE testcol LIKE '%0%'
    OR testcol LIKE '%1%'
    OR testcol LIKE '%2%'
    OR testcol LIKE '%3%'
    OR testcol LIKE '%4%'
    OR testcol LIKE '%5%'
    OR testcol LIKE '%6%'
    OR testcol LIKE '%7%'
    OR testcol LIKE '%8%'
    OR testcol LIKE '%9%'

문자열에 숫자가 포함되어 있는지 탐지하는 데 사용하는 기술은 다음과 같습니다.

select LAST_NAME, 'contains a number'
  FROM names
 where translate(LAST_NAME, '0123456789', '') <> LAST_NAME

그것은 숫자를 빈 문자열로 변환함으로써 작동합니다.문자열이 동일하게 유지되는 경우 숫자를 포함할 수 없습니다.

이 기법은 또한 문자열이 모두 숫자인지를 테스트하는 데 사용됩니다.

select TEL_NUMBER, 'is all numbers'
  FROM names
 where trim(translate(TEL_NUMBER, '-0123456789', '')) = ''

전화번호에는 대시가 포함되어 있습니다. 왜냐하면 전화번호에는 대시가 포함되어 있기 때문입니다.

저는 regex를 사용해보겠습니다.좋아요:

select regexp_instr('%[0-9]%',@str1) from table_name;

건배 --조크

SQL 기능이 제한적이기 때문에 NetSuite 저장 검색에서 REGEXP_INSTR을 사용하는 경우가 있습니다.숫자가 없으면 0을 반환하거나 문자열에 있는 첫 번째 숫자의 시작 위치를 반환합니다.

REGEXP_INSTR(my_var, '[[:digit:]]')

다음 예제에서는 0을 반환합니다.

REGEXP_INSTR('test', '[[:digit:]]')

이 예제에서는 숫자를 찾았기 때문에 0보다 큰 숫자를 반환합니다.

REGEXP_INSTR('test2', '[[:digit:]]')

언급URL : https://stackoverflow.com/questions/11341492/how-do-i-check-if-a-string-contains-a-number

반응형