본문 바로가기
2019/ORACLE

SQL INSTR

by SOLYI 2019. 11. 15.

SELECT instr('abcdabcdabcd', 'a')
from dual;

SELECT instr('abcdabcdabcd', 'c')
from dual;
--
SELECT instr('abcdabcdabcd', 'c', 5)
from dual;

select instr('abcdabcdabcdabcd','a',5,2)
from dual;
--5번째자리부터 2번째에 만나는?

select instr('abcdabcdabcdabcd','a',5,4)
from dual;

-- 

--emp 테이블의 ename에서 'S'가 포함된 사원의 
--사원번호, 이름,부서코드, 입사일을 출력하시오
--(1)
select empno, ename, deptno, hiredate from emp
where ename like '%S%';

--(2)
select empno, ename, deptno, hiredate from emp
where instr(ename, 'S') >=1;

--입사 월 출력
select substr(hiredate,4,2) from emp;
--입사 년도 출력
select substr(hiredate,1,2) from emp;


--Q.82년도 입사한 사원 출력
select * from emp
where substr(hiredate,1,2) = '82';

--(2)
select * from emp
where hiredate >= '82/01/01' and hiredate <= '82/12/31';

--(3)
select * from emp
where hiredate between '82/01/01' and '82/12/31';

--E로 끝나는 사원 검색. 3가지방법
--(1) substr 사용
select ename from emp
where substr(ename,-1) = 'E';

--(2) instr 사용 ★★
select * from emp
where instr(ename, 'E', length(ename)) > 0;

--(3) like 사용
select ename from emp
where ename like '%E';

--3번째 자리가 R인 사원
--(1) like 
select ename from emp
where ename like '__R%';

--(2) substr
select ename from emp
where substr(ename,3,1) = 'R' ;

--(3) instr 
select ename from emp
where instr(ename, 'R') = 3;

select ename from emp
where instr(ename, 'R',3) = 3;
반응형

'2019 > ORACLE' 카테고리의 다른 글

SQL NVL NVL2  (0) 2019.11.15
SQL DATE  (0) 2019.11.15
SQL LPAD RPAD  (0) 2019.11.15
SQL TRIM LTRIM RTRIM  (0) 2019.11.15
SQL 포맷 변경  (1) 2019.11.14