데이터베이스(DB)/Oracle DB SQL - 뉴렉처 youtube 강의

23~24강 - 문자열 내장 함수(SUBSTR, CONCAT, TRIM, REPLACE, TRANSLATE, PAD, INITCAP, LENGTH, ASCII, CHR)

의그 2021. 9. 21. 21:13

함수의 구분 - 문자열/숫자/날짜/변환/NULL관련/집계 함수

전화번호를 등록하지 않은 회원 중에서 생년 월이 7,8,9인 회원의 모든 정보를 출력

=> SELECT * from member where PHONE IS NULL AND substr(birthday, 6, 2) in ('07', '08', '09');

 

공백을 없애주는 TRIM함수

SELECT INITCAP('the most import thing is ...') from dual;

// 각 단어의 첫 글자(t, m, i, t, i, ~)만 대문자로 바꿔 줌.

 

SELECT INSTR('all wee need to is just to...', 'to') from dual; // to를 찾아 줌. -- 13

SELECT INSTR('all wee need to is just to...', 'to', 15) from dual; // 15번째 자리부터 to를 검색. --24

SELECT INSTR('all wee need to is just to...', 'to', 1, 2') from dual; // 1번째 자리부터 to를 찾지만 2번쨰로 찾은 to 를 찾아 줌. -- 24

 

회원의 전화번호에서 두 번째 대시(-) 문자가 존재하는 위치를 출력

SELECT INSTR(PHONE, '-', 1, 2) from MEMBER;

 

회원의 전화번호에서 첫 번째 대시(-) 문자와 두 번째 대시(-) 문자 사이의 간격은?

SELECT INSTR(PHONE, '-', 1, 2) - INSTR(PHONE, '-', 1, 1) - 1 FROM MEMBER;

 

회원의 전화번호에서 첫 번째와 두 번째 사이의 국번을 출력하시오.

SELECT SUBSTR(PHONE, 5, INSTR(PHONE, '-', 1,2) - INSTR(PHONE, '-', 1, 1) -1) from member;

// 010- 는 기본이기 때문에 5번째 자리부터 첫 '-'부터 두번째 '-' 사이의 번호 출력