1. SUBSTR(문자열, 시작위치, 길이) : 문자열 잘라내는 함수
SELECT SUBSTR('HELLO',1,3) FROM DUAL;
-> HELLO의 1번째 위치부터 3글자
SELECT SUBSTR('HELLO',3) FROM DUAL;
-> HELLO의 3번째 위치부터 다
SELECT SUBSTRB('HELLO',3) FROM DUAL;
-> 바이트단위, HELLO의 3번째 바이트부터 다(영문이라 1바이트 단위)
SELECT SUBSTRB('안녕',3) FROM DUAL;
ex) 모든 학생의 이름과 출생 월만을 조회하시오.
select name, substr(birthday,6,2) month from student;
ex) 회원 중에서 전화번호가 011으로 시작하는 회원의 모든 정보를 출력하시오.
select * from member where substr(phone,1,3)='011'; 또는
select * from member where phone like '011%';
ex)회원 중에서 생년 월이 7,8,9월인 회원의 모든 정보를 출력하시오.
select * from member where substr(birthday,6,2) [not] in ('07','08','09');
ex) 전화번호를 등록하지 않은 회원 중에서 생년 월이 7,8,9월인 회원의 모든 정보를 출력하시오.
select * from member where phone is null and substr(birthday,6,2) [not] in ('07','08','09');
2. CONCAT('a','b') : 문자열 덧셈 함수
-> 'ab'
= select 3||'4' from dual
= select 3 + '4' from dual : 함수를 쓰지 않는 것을 권장(속도차이).
3. 문자열 TRIM 함수
select LTRIM(' hello ') from dual;
select RTRIM(' hello ') from dual;
select TRIM(' hello ') from dual;
4. 문자열 소문자 또는 대문자로 변경하기
select lower('neWlEc') from dual;
select upper('neWlEc') from dual;
ex) 회원의 아이디가 'newlec'인 회원을 조회하시오. (단, 대/소문자를 가리지 않음)
select * from member where lower(id) = 'newlec';
5. REPLACE(문자열, 찾는 문자열, 대치할 문자열)/ TRANSLATE()
select replace('where we are', 'we', 'you') from dual;
-> 문자열을 찾아 문자열로 대치해준다.
select translate('where we are', 'we', 'you') from dual;
-> 문자 하나씩 대치, w->y, e->o; 길이가 맞아야 하지만 길다고 오류가 나진 않음.
ex) 회원의 이름과 주소를 조회하시오.(단, 주소는 빈칸 없이 출력하시오.)
select name, replace(adress, ' ','') from member;
'데이터 베이스 > Oracle SQL' 카테고리의 다른 글
[oracle sql] 문자열 내장 함수 (2) (0) | 2021.10.26 |
---|---|
SQL DEVELOPER 경고 오류 실행 안됨 (3) | 2021.10.24 |
rownum 실습 (0) | 2021.10.23 |
정규식 참고 사이트 (0) | 2021.10.23 |
sql 실습 (1) (0) | 2021.10.22 |