Oracle: 숫자 값만 있는 행을 반환하는 SQL 쿼리
"a1b2c3", "abc", "1ab", "123", "156" 등의 값을 가진 X라는 필드가 있습니다.
순수 숫자 값 = 문자가 없는 X만 반환하는 sql 쿼리를 작성하려면 어떻게 해야 합니까?위의 예에서는 '123'과 '123'이 됩니다.
myTable에서 X를 선택합니다.여기서...
를 사용할 수 있습니다.REGEXP_LIKE
다음과 같이 기능:
SELECT X
FROM myTable
WHERE REGEXP_LIKE(X, '^[[:digit:]]+$');
샘플 실행:
SQL> SELECT X FROM SO;
X
--------------------
12c
123
abc
a12
SQL> SELECT X FROM SO WHERE REGEXP_LIKE(X, '^[[:digit:]]+$');
X
--------------------
123
SQL>
고려해야 할 문자가 문자뿐일 경우 다음을 수행할 수 있습니다.
select X from myTable where upper(X) = lower(X)
하지만 물론 그것은 다른 캐릭터들을 걸러내지는 않을 것이다, 단지 글자.
Oracle 12c 이후(적어도) 문자 값이 숫자인지 확인하는 기능이 내장되어 있습니다.VALIDATE_CONVERSION
select X from myTable where validate_conversion(X as number) = 1
Oracle 10 이상을 사용하는 경우 코드 주소 제안대로 regexp 함수를 사용할 수 있습니다.이전 버전에서는translate
기능은 다음을 지원합니다.
select * from tablename where translate(x, '.1234567890', '.') is null;
Oracle 번역 기능에 대한 자세한 내용은 여기를 클릭하거나 공식 문서 "SQL Reference"를 참조하십시오.
UPD: 번호에 기호나 공백이 있으면 "를 추가할 수 있습니다.+-
의 두 번째 파라미터에 대한 문자translate
기능.
1.1E10, +1, -0 등은 어떻습니까?가능한 모든 숫자를 분석하는 것은 많은 사람들이 생각하는 것보다 더 까다롭다.가능한 한 많은 숫자를 포함하려면 PL/SQL 함수에 to_number 함수를 사용해야 합니다.http://www.oracle-developer.net/content/utilities/is_number.sql 에서 :
CREATE OR REPLACE FUNCTION is_number (str_in IN VARCHAR2) RETURN NUMBER IS
n NUMBER;
BEGIN
n := TO_NUMBER(str_in);
RETURN 1;
EXCEPTION
WHEN VALUE_ERROR THEN
RETURN 0;
END;
/
Oracle 11.1의 regexp_like 함수 및 기타 regexp 함수 전체 목록은 다음과 같습니다.
http://66.221.222.85/reference/regexp.http://66.221.222.85
이 예에서는 다음과 같습니다.
SELECT X
FROM test
WHERE REGEXP_LIKE(X, '^[[:digit:]]$');
다음 명령을 사용할 수 있습니다.
LENGTH(TRIM(TRANSLATE(string1, '+-.0123456789', '')))
다음 경우 NULL이 반환됩니다.string1
숫자
문의는 다음과 같습니다.
select * from tablename
where LENGTH(TRIM(TRANSLATE(X, '+-.0123456789', ''))) is null
언급URL : https://stackoverflow.com/questions/3932230/oracle-sql-query-that-returns-rows-with-only-numeric-values
'programing' 카테고리의 다른 글
여러 함수를 호출 on클릭 리액트JS (0) | 2023.03.15 |
---|---|
WordPress 블로그에서 포트 번호 변경 (0) | 2023.03.15 |
Mongo는 포트 27017(localhost)에 자동으로 접속을 시도합니다. (0) | 2023.03.10 |
React 컴포넌트 상태로 객체를 저장하시겠습니까? (0) | 2023.03.10 |
Oracle의 듀얼 테이블이란 무엇입니까? (0) | 2023.03.10 |