상세 컨텐츠

본문 제목

[ORACLE] LPAD()로 숫자·문자 정렬 깔끔하게 처리하는 방법

Database/Oracle

by Dev. Orion 2025. 6. 3. 21:02

본문

728x90

오라클 LPAD()로 숫자·문자 정렬 깔끔하게 처리하는 방법
[Oracle] LPAD

 

Oracle SQL에서 문자열 좌측을 지정된 문자로 채워 정해진 길이로 맞추는 LPAD 함수의 사용법과 예제를 다룹니다. 실무 활용 중심으로 설명합니다.

1. LPAD 함수란?

LPAD 함수는 지정한 길이만큼 문자열의 왼쪽(Left)에 특정 문자를 채워 문자열을 맞춰주는 Oracle 내장 함수입니다.

LPAD(string, length, pad_string)
  • string: 원본 문자열
  • length: 결과 문자열의 전체 길이
  • pad_string: 왼쪽에 채울 문자열 (생략 시 공백)

2. 기본 사용 예제

SELECT LPAD('123', 5, '0') FROM dual;
-- 결과: '00123'
SELECT LPAD('oracle', 10, '*') FROM dual;
-- 결과: '****oracle'
SELECT LPAD('ABC', 6) FROM dual;
-- 결과: '   ABC' (기본 공백)

3. LPAD의 주요 활용 사례

1) 숫자 포맷 정리

숫자 앞에 0을 붙여 고정 자릿수로 표현

SELECT LPAD(TO_CHAR(emp_id), 6, '0') AS emp_code
FROM employees;

2) 고정 포맷 보고서 출력

SELECT LPAD(name, 20, ' ') || LPAD(salary, 10, ' ') AS report_line
FROM staff;

3) 문자열 정렬 및 코드 생성

SELECT LPAD(product_id, 8, 'X') AS padded_id
FROM inventory;

4. 실무 활용 팁

  • LPAD는 보고서 출력 시 매우 유용
  • 좌측 정렬을 필요로 하는 문자열 생성 시 효과적
  • 정렬 기준이 되는 문자열을 맞춰야 할 때 필수

5. RPAD와의 차이점

  • LPAD: 문자열의 왼쪽에 채움
  • RPAD: 문자열의 오른쪽에 채움
SELECT LPAD('A', 5, '-') AS left_padded,
       RPAD('A', 5, '-') AS right_padded
FROM dual;
-- 결과: '----A', 'A----'

6. 특이 케이스 및 주의사항

  • 지정 길이보다 원본 문자열이 길면 잘려나감
  • pad_string이 여러 문자일 경우 반복하여 채움
SELECT LPAD('123456789', 5, '*') FROM dual;
-- 결과: '12345' (잘림)
SELECT LPAD('A', 6, 'xyz') FROM dual;
-- 결과: 'xyzxyA'

7. 성능 및 인덱스 팁

LPAD는 가공 함수이므로 WHERE 절에서 사용 시 인덱스를 타지 않음. 함수 기반 인덱스 활용 권장.

CREATE INDEX idx_lpad_code ON users(LPAD(user_code, 10, '0'));

8. 결론

LPAD 함수는 포맷팅, 보고서 출력, 코드 정렬 등 다양한 상황에서 활용도가 높은 유틸리티 함수입니다. RPAD와 함께 사용하면 정렬 및 시각적 데이터 품질 향상에 매우 유리합니다.

📚 참고 자료

  • Oracle 공식 문서: docs.oracle.com
  • SQL 전문가를 위한 Oracle SQL 가이드 (한빛미디어)
  • SQL 정복을 위한 실무 예제 모음 (길벗출판사)
728x90

관련글 더보기