728x90

Oracle SQL에서 문자열의 일부분을 추출하는 데 사용되는 SUBSTR 함수에 대해 자세히 설명합니다. 본 글은 개발자와 데이터 분석가가 쉽게 이해하고 활용할 수 있도록 실전 예제 중심으로 구성되어 있습니다.
1. SUBSTR 함수란?
SUBSTR 함수는 문자열에서 특정 위치의 문자부터 원하는 길이만큼 추출하는 함수입니다. 형식은 다음과 같습니다.
SUBSTR(string, start_position, [length])
string: 대상 문자열start_position: 추출 시작 위치 (1부터 시작)length(선택): 추출할 문자 수
2. 기본 사용 예제
SELECT SUBSTR('Oracle Database', 1, 6) AS result FROM dual;
-- 결과: Oracle
SELECT SUBSTR('Oracle Database', 8) AS result FROM dual;
-- 결과: Database
3. 음수 인덱스 사용
음수를 지정하면 문자열의 끝에서부터 계산됩니다.
SELECT SUBSTR('Oracle Database', -8, 4) AS result FROM dual;
-- 결과: Data
4. 실제 테이블 활용 예제
예제 테이블: users
CREATE TABLE users (
user_id NUMBER,
full_name VARCHAR2(100),
email VARCHAR2(100)
);
INSERT INTO users VALUES (1, 'Kim Jisoo', 'jisoo@sample.com');
INSERT INTO users VALUES (2, 'Lee Minho', 'minho@sample.com');
이메일 도메인 추출 예제
SELECT
email,
SUBSTR(email, INSTR(email, '@') + 1) AS domain
FROM users;
-- 결과: sample.com
5. SUBSTR vs REGEXP_SUBSTR
| 항목 | SUBSTR | REGEXP_SUBSTR |
|---|---|---|
| 기능 | 문자열 일부 추출 | 정규표현식 기반 추출 |
| 정밀도 | 위치 중심 | 패턴 중심 |
| 복잡도 | 낮음 | 높음 |
| 유연성 | 보통 | 높음 |
6. 활용 팁 및 유의사항
- INSTR 함수와 자주 함께 사용됩니다.
- 음수 인덱스 사용 시 시작 위치가 뒤에서부터 계산됩니다.
- 대상 문자열이 NULL일 경우 결과도 NULL이 됩니다.
7. 결론
SUBSTR 함수는 Oracle SQL에서 문자열을 다룰 때 가장 기본적이면서도 강력한 함수입니다. 다양한 조건에서 데이터를 가공할 수 있어 보고서, ETL, 데이터 분석 등 여러 분야에서 널리 사용됩니다.
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] LENGTH()로 문자열 길이 계산하기 : 기본부터 고급까지 (0) | 2025.06.03 |
|---|---|
| [ORACLE] INSTR() 함수로 문자열 위치 찾기의 모든 것 (0) | 2025.06.03 |
| [ORACLE] CONCAT() 함수로 텍스트 데이터 처리하는 법 (0) | 2025.06.03 |
| [ORACLE] REGR_SXY() 함수로 두 변수 간 선형 회귀 분석하기 (0) | 2025.06.03 |
| [ORACLE] REGR_SYY() 함수란? 분산 분석 및 상관 계수 해석 방법 (0) | 2025.06.02 |