728x90
instr(문자열, 검색할 문자, 시작지점, n번째 검색단어)
- 찾는 문자의 위치를 반환
- 찾는 문자가 없으면 0을 반환
- 찾는 단어 앞글자의 순서를 반환(1~)
select instr('Hello Oracle', 'O') as instr from dual; -- 7
select instr('Hello Oracle', 'Ox') as instr from dual; -- 결과 값이 없으면 0 반환
select instr('Hello Oracle', 'Oracle') as instr from dual; -- 7
select instr('Hello Oracle', 'l') as instr from dual; -- 3
select instr('Hello Oracle', 'l', 5) as instr from dual; -- 시작지점 5, 11
select instr('Hello Oracle', 'l', 1, 3) as instr from dual; -- 3번째 문자 l 11
regexp_instr(대상문자열, 패턴, 처음 시작위치, 몇번째 일치, 일치하는 문자열 시작위치)
- 문자함수 instr()의 기능을 확장한 것으로 정규 표현식을 이용해 입력된 문장을 검색
- 정규표현식 문자클래스(POSIX)
create table tb_Example(
e_test varchar2(100)
);
insert into tb_example values ('abc123-abc-01');
insert into tb_example values ('abb123-abc-02');
insert into tb_example values ('acc123-abc-03');
insert into tb_example values ('add123-abc-04');
insert into tb_example values ('aee123-abc-05');
insert into tb_example values ('aff123-abc-06');
select e_test, regexp_instr(e_Test, 'bb', 1) from tb_example; -- bb의 첫글자 위치 출력
select e_test from tb_example where regexp_instr(e_Test, 'bb', 1) > 0 ; -- bb의 첫글자 위치가 0이상 인 데이터만 출력('bb'가 포함된 데이터)
regexp_substr()
- 정규 표현식 패턴을 적용하여 문자열 일부를 반환
패턴 이용하여 이메일 앞글자 잘라와서 email_id 생성
select mem_userid, mem_name, regexp_substr(mem_email, '[^%@]+') as email_id, mem_email from tb_member;
concat()
- 문자열을 연결하는 함수
아이디, @korea.com를 연결하여 이메일 생성
select mem_userid, mem_name, concat(mem_userid, '@korea.com') as email from tb_member;
rownum
- 조회된 순서대로 순번을 적용
select rownum, mem_userid, mem_name from tb_member;
가입일 순으로 조회된 데이터 3번째 데이터 까지만 출력
select rownum, mem_userid, mem_name, mem_regdate from tb_member where rownum <= 3 order by mem_regdate desc;
728x90
'SQL > Oracle' 카테고리의 다른 글
[Oracle] View (0) | 2022.06.15 |
---|---|
[Oracle] join (0) | 2022.06.15 |
[Oracle] group by(그룹), 집계 함수 count() (0) | 2022.06.13 |
[Oracle] 컬럼 별명 & 중복 값 제거 (0) | 2022.06.13 |
[Oracle] Oracle student 테이블 생성 (0) | 2022.06.12 |