2011-11-29 3 views
0

며칠 내에 시험이 있습니다 (중간 고사), 중간에있을 수있는 모든 가능한 테스트를 실행하려고합니다. 전화 번호가있는 직원 테이블이 있다고 가정하십시오. 이 양식 abc.edf.ghi (이 모든 숫자는 문자열이 아닙니다.) 전화 번호가 인 직원을 어떻게 나열 할 수 있습니까? 숫자이므로 서브 문자열 기능을 사용할 수 있다고 생각하지 않습니다. 맞습니까? 또한 C++ (100으로 나눗셈, 100 등등)에서와 같이 합계 숫자로 나눗셈을 수행 할 수 없으므로 제 질문을 너무 많이 말하면 유감스럽게 생각합니다. 연습 만하면 돼.전화 번호에 따라 데이터베이스에서 선택

답변

1

Oracle sayssubstr은 문자열 전용이지만 NUMBER 데이터 유형으로 정의 된 열도 substr 일 수 있습니다. (PHONENUMBERCOLUMN의 형식이 abc.edf.ghi이라고 가정)

select * from YOURTABLE where substr(PHONENUMBERCOLUMN,5,3)='edf'

참고 : 데이터 유형 번호가 아닌 경우 그것은, 'edf'하지 edf해야한다. 열의 데이터 유형이 숫자 또는 문자열 (char, varchar, varchar2 등)이든 관계없이 항상 작은 따옴표를 사용하십시오.

0

MySQL에서는 SUBSTRING() 함수를 사용해 볼 수 있습니다. 전화 번호가 표시되는 형식이면 INT가 아닌 varchar 여야합니다.

Oracle의 경우 그 전화 번호를 생각의 실수가 입니다하지 마십시오 substr()

+0

오라클과 매우 비슷하므로 substr 예입니까? –

+0

@dato thats correct –

+0

및 범위 substr (phonenumber, 5,8) 또는 시도했지만 작동하지 않습니다 –

1

를 사용합니다. 전화 번호는 대개 주로 숫자로 구성된 문자열입니다.

일부 숫자로 시작하는 전화 번호를 상상해보십시오. 번호로 저장하면 잘릴 수 있고 차이가 날 수 있지만 잘릴 것입니다. 문자열로 저장하면 안심할 수 있습니다.

또한 문자열로 저장하면 SUBSTR 및 유사한 함수를 사용하여 문제를 해결할 수있는 기능을 다소 다를 수 있습니다.

관련 문제