본문 바로가기
🛠️Skill/SQL

[SQL 문법] SUBSTR 특정 문자 추출 , LENGTH / CHAR_LENGTH 길이 추출, INSTR 위치 추출

by Istj_eff 2022. 12. 3.

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;

 

댓글