방법: 1. "trim(translate(column,'0123456789',' ')) is NULL;"을 사용하여 데이터가 숫자인지 확인합니다. 2. "regexp_like(column,'^[0-9]"를 사용합니다. +[0 -9]$');" 데이터가 숫자인지 확인합니다.
이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 11g 버전, Dell G3 컴퓨터.
select*from table name wherere 일상적인 개발에서 우리는 특정 열이 완전히 숫자로 구성되어 있는지 확인하는 문제에 직면할 수 있습니다. Oracle이 이러한 미리 만들어진 기능을 제공하지 않는다는 것을 알고 내 경험을 바탕으로 두 가지 효과적인 방법(열 이름: 열, 테이블 이름: 테이블)을 요약했습니다.
1 트림+번역 기능 사용:
코드는 다음과 같습니다.
select * from table where trim(translate(column,'0123456789',' ')) is NULL;
여기서 주목해야 할 점은 번역 함수의 세 번째 매개변수가 ''가 아닌 공백이라는 점입니다. 번역의 세 번째 매개변수가 비어 있으면 항상 ''를 반환하기 때문입니다. , 따라서 순전히 수치 목적으로 필터링을 수행할 수 없습니다.
이런 식으로 모든 숫자는 공백으로 변환됩니다. 모두 숫자로 구성된 경우 일단 다듬어지면 자연스럽게 비어 있게 되어 위의 목표를 달성하게 됩니다. 물론 빈 항목을 제외하려면 다음과 같이 쓰면 됩니다.
코드는 다음과 같습니다.
select * from table where trim(translate(nvl(column,'x'),'0123456789',' ')) is NULL;--x 表示任何'0-9'以外的字符。
2 regexp_like 함수를 사용합니다.
코드는 다음과 같습니다.
select * from table where regexp_like(column,'^[0-9]+[0-9]$');
해야 합니다. 여기서 regexp_like 함수는 모든 Oracle 버전에서 사용할 수는 없지만 모두 사용할 수 있다는 점에 유의하세요.
regexp_like는 Oracle이 정규식을 지원하는 네 가지 함수인 regexp_like, regexp_replace, regexp_instr, regexp_substr 중 하나입니다. 이와 관련된 자세한 내용은 관련 문서를 참고하시기 바랍니다.
추천 튜토리얼: "Oracle Video Tutorial"
위 내용은 Oracle은 데이터가 숫자 유형인지 여부를 어떻게 결정합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!