환경
윈도우10 64비트
오라클 18c 익스프레스

 

스캇 예제
예제를 확인하시려면

https://ondolroom.tistory.com/163

 

DUAL은 가상의 테이블이다
테스트 용도로 사용

SELECT 'CRIS'
FROM DUAL;

 

오라클은 인덱스를 1부터 시작한다
첫번째 인자는 문자열, 두번째 인자는 시작 번지, 세번째 인자는 개수

SELECT SUBSTR('CRIS', 0, 1)
FROM DUAL;

0을 넣어도 작동이 되긴 한다

SELECT SUBSTR('CRIS', 1, 1)
FROM DUAL;

 

 

SUBSTR()함수를 사용하면 데이터를 잘라서 검색도 가능

SELECT *
FROM 테이블
WHERE SUBSTR(열이름, 문자열 시작위치, 문자 개수) = '문자 또는 문자열';
SELECT *
FROM emp
WHERE SUBSTR(ename, 1, 1) = 'M';

 

-- student
SELECT *
FROM student
WHERE SUBSTR(jumin,1,2) = 76;

 

 

-- student에서 부산에 사는 사람을 찾으시오.
SELECT *
FROM student
WHERE SUBSTR(tel, 1, 3) = '051';

 

 

-- student 2월에 태어난 사람을 찾으시오.
SELECT *
FROM student
WHERE SUBSTR(birthday, 4, 2) = '02';

 

 

SELECT instr(문자열,찾을 문자 또는 문자열, 시작 문자열 위치, n번째 검색결과)
FROM dual;

1번위치부터 검색하여 2번째 - 가 있는 곳을 검색

SELECT instr('02-5555-8989','-', 1, 2)
FROM dual;

 

 

중간번호를 찾아내기

SELECT substr(찾을 데이터, 시작위치, 개수) AS 열의 별칭
from 테이블;
SELECT substr(tel, instr(tel, ')') + 1, instr(tel, '-') - instr(tel, ')') - 1) AS 중간번호, tel
from student;

 

 

SELECT name, tel, SUBSTR(tel, 1, INSTR(tel,')') - 1) AS "AREA CODE"
FROM student
WHERE deptno1 = 201;

 

 

-- REPLACE 함수 사용해보기
SELECT REPLACE(문자열, 바꾸고 싶은 문자 또는 문자열, 넣을 문자)
FROM 테이블
WHERE 열이름 = 데이터;
-- REPLACE 함수 사용해보기
SELECT REPLACE('ABC', 'A', 'F')
from dual;

 

SELECT ename, REPLACE(ename, SUBSTR(ename, 2, 2), '--')
FROM emp
WHERE deptno = 20;

 

SELECT  name, jumin, REPLACE(jumin, SUBSTR(jumin, 7, 7), '-/-/-/-') "REPLACE"
FROM student
WHERE deptno1 = 101;

 

SELECT  name, tel, REPLACE(tel, SUBSTR(tel, 5, 3), '***') "REPLACE"
FROM student
WHERE deptno1 = 102;

 

SELECT  name, tel, REPLACE(tel, SUBSTR(tel, 9), '****') "REPLACE"
FROM student
WHERE deptno1 = 101;

 

SELECT REPLACE(jumin, SUBSTR(jumin, 8, 6), '******')
FROM student;

 

SELECT LPAD(SUBSTR(tel, instr(tel,')')), instr(tel,'-') + 4, '*')
FROM student;
SELECT REPLACE(tel,  SUBSTR(tel, 1, instr(tel,')')-1), SUBSTR('***', 1, INSTR(TEL, ')') - 1))
FROM student;

 

 

 

+ Recent posts