🛠️Skill/SQL
[SQL 문법] SUBSTR 특정 문자 추출 , LENGTH / CHAR_LENGTH 길이 추출, INSTR 위치 추출
Istj_eff
2022. 12. 3. 23:26
1. SUBSTR(문자, 시작, 끝)
SELECT SUBSTR ('SMITH',1,3) name -- 'SMITH'에서 1번째부터 3번째까지 문자추출
FROM DUAL;

2. LENGTH(문자)
문자의 byte 길이를 반환, 한글같은 문자는 정확한 길이를 가져오기 어려움.
SELECT ename, LENGTH(ename)
FROM emp;

- LENGTHB : 바이트의 길이를 반환 (한글은 한글자에 3바이트)
SELECT LENGTHB('가나다라마')
FROM DUAL;

3. CHAR_LENGTH(문자) 또는 CHARACTER_LENGTH(문자)
LENGTH처럼 byte가 아니라 문자가 몇개가 있는지 그대로 반환해줌
SELECT CHAR_LENGTH('HELLO')
SELECT CHARACTER_LENGTH('HELLO')
[out] 5
SELECT CHAR_LENGTH('안녕')
SELECT CHARACTER_LENGTH('안녕')
[out] 2
4. INSTR : 특정 철자의 위치 출력
SELECT INSTR('SMITH','M')
FROM DUAL;

- 이메일에서 naver.com만 추출하기
-- 이메일의 '@'뒤부터 시작해서 가져오기
SELECT SUBSTR('abcdefgh@naver.com', INSTR('abcdefgh@naver.com','@')+1) EMAIL
FROM DUAL;

- 이메일에서 naver 만 추출하기
SELECT RTRIM(SUBSTR('abcdefgh@naver.com', INSTR('abcdefgh@naver.com','@')+1), '.com') EMAIL
FROM DUAL;
