4) length
: 문자열 길이
length(‘한글’) -> 2
5) lengthb
: 저장하기 위해 필요한 바이트 수
영어, 숫자 저장 시 1바이트 필요.
한글을 저장 시 3바이트 필요. → 시스템 마다 다르다.
lengthb(‘한글’) -> 4
예시 :
select lengthb('홍길동') from dual;
dual 테이블 : 더미 테이블. 오라클에서 의미없는 테이블로 사용 할 수 있도록 생성된 테이블.
6) substr
: 부분 문자열 함수
substr(‘ABC’,1,2) -> AB
substr(칼럼 명,1부터 시작하는 인덱스,글자수) ← 공백도 셈함.
substr(칼럼 명,음수부터 시작하는 인덱스(뒤부터),글자수)
- ex) 시작 인덱스 : -1 => 뒤에서 첫번째
-2 => 뒤에서 두번째
예시 :
select substr('안녕 나는 홍길동이야',7,3) from dual;
//
substr(75030316826,1,6) : 750303
문제 :
1. 학생 중 생일이 3월인 학생의 이름,생년월일 조회하기.
생일은 주민번호를 기준으로 함.
select name,jumin,substr(jumin,1,6) 생년월일 from student where substr(jumin,3,2)='03';
문제 :
2. 학생의 이름,생년월일 조회하기. 생년월일은 주민번호를 기준으로 한다.
생일의 월을 기분으로 정렬하여 출력하기.
select name,substr(jumin,1,6) 생년월일 from student order by substr(jumin,3,2);
select name,substr(jumin,-13,6) 생년월일 from student order by substr(jumin,-11,2);
7) instr
: 문자열(칼럼값)에서 해당문자의 위치값 리턴
instr(‘A*B#’,’#’) - > 4
instr(문자열,'찾을 문자값',[시작인덱스,번째])
예시 :
1. 'A*B*C'에서 첫번째'*'문자의 위치 리턴 //2
select instr('A*B*C','*') from dual;
2. 'A*B*C'에서 '0'문자의 위치 리턴 //0. 해당문자 없음.
select instr('A*B*C','0') from dual;
3. 'A*B*C'에서 두번째'*'문자의 위치 리턴 //4
select instr('A*B*C','*',1,2) from dual;
4. 'A*B*C'에서 세번째'*'문자의 위치 리턴 //0. 해당문자 없음.
select instr('A*B*C','*',1,3) fromn dual;
5. 'A*B*C'에서 '*'문자를 뒤부터 4번째 인덱스 부터 검색하여 1번째 있는 위치 리턴 //2
select instr('A*B*C','*',-4) from dual;
select instr('A*B*C','*',-3) from dual; //값은 위와 동일.
6. 'A*B*C'에서 '*'문자를 뒤부터 4번째 인덱스 부터 검색하여 2번째 있는 위치 리턴 //4
select instr('A*B*C','*',-1,1) from dual;
7. 'A*B*C'에서 '*'문자를 뒤부터 1번째 인덱스 부터 검색하여 2번째 있는 위치 리턴 //2
select instr('A*B*C','*',-1,2) from dual;
문제 :
1. 학생테이블에 이름,전화번호(tel),tel 컬럼의')'문자의 위치를 출력하기.
select name,tel,instr(tel,')') from student;
문제 :
2. 학생의 이름,전화번호,지역번호를 출력하기.
- instr(tel,')') : ')'의 위치값
- substr(칼럼명,시작인덱스,글자개수)
select name,tel,substr(tel,1,instr(tel,')')-1) 지역번호 from student;
'수업(국비지원) > Oracle' 카테고리의 다른 글
[Oracle] SQL 단일행 함수 - 문자 함수(문자열 치환 함수) replace (0) | 2023.04.14 |
---|---|
[Oracle] SQL 단일행 함수 - 문자 함수(문자 추가,제거 함수) lpad, rpad, ltrim, rtrim, trim (0) | 2023.04.14 |
[Oracle] SQL 단일행 함수 - 문자 함수(대소문자 변환 함수) initcap, upper, lower (0) | 2023.04.14 |
[Oracle] 합집합 union (0) | 2023.04.13 |
[Oracle] order by 구문 (0) | 2023.04.13 |