티스토리 뷰
SQL 채우기 숫자 기능: LPAD 및 RPAD
LPAD(왼쪽 패딩) 및 RPAD(오른쪽 패딩)는 문자열에 패딩을 추가하는 데 사용되는 SQL 함수입니다.
문자열의 왼쪽이나 오른쪽에 문자를 추가하여 데이터를 특정 길이로 형식화해야 할 때 유용합니다.
기본 사용 방법
- LPAD: 문자열 왼쪽에 패딩을 추가합니다.
LPAD(string, length, pad_string)
- RPAD: 문자열 오른쪽에 패딩을 추가합니다.
RPAD(string, length, pad_string)
매개변수:
string: 채워질 원래 문자열입니다.
length: 패딩 후 문자열의 전체 길이입니다.
pad_string: 패딩에 사용되는 문자열입니다. 패딩 문자열이 필요한 것보다 길면 잘립니다.
예시
- MySQL
-- LPAD Example
SELECT LPAD('123', 5, '0'); -- Result: '00123'
-- RPAD Example
SELECT RPAD('123', 5, '0'); -- Result: '12300'
- Oracle SQL
-- LPAD Example
SELECT LPAD('abc', 6, 'xy') FROM DUAL; -- Result: 'xyxabc'
-- RPAD Example
SELECT RPAD('abc', 6, 'xy') FROM DUAL; -- Result: 'abcxyx'
- MSSQL
SQL Server에는 직접적인 LPAD 또는 RPAD 기능이 없지만 REPLICATE 기능과 문자열 연결을 사용하면 비슷한 결과를 얻을 수 있습니다.
-- LPAD Example
SELECT RIGHT(REPLICATE('0', 5) + '123', 5); -- Result: '00123'
-- RPAD Example
SELECT LEFT('123' + REPLICATE('0', 5), 5); -- Result: '12300'
Good 사용법
1. 데이터 형식: 숫자 ID를 표시할 때 패딩을 사용하면 통일성을 보장할 수 있습니다.
예를 들어 0을 채워 모든 ID가 6자리인지 확인합니다.
SELECT LPAD(employee_id, 6, '0') FROM 직원; -- ID 형식을 6자리로 지정
2. 고정 길이 문자열: 고정 길이 데이터 구조 또는 형식으로 작업할 때 패딩을 사용합니다.
SELECT RPAD(product_code, 10, ' ') FROM 제품; -- 모든 제품 코드가 10자인지 확인합니다
Bad 사용법
1. 오버 패딩: 잘림이나 저장 비효율성을 초래할 수 있는 불필요한 패딩을 추가하지 마세요.
SELECT LPAD('text', 1000, 'x') FROM 테이블; -- 불필요하고 비효율적인 패딩
2. 데이터 무결성: 비교에 사용될 문자열을 채울 때 예상치 못한 결과가 발생할 수 있으므로 주의하세요.
SELECT * FROM 사용자 WHERE LPAD(사용자 이름, 10, ' ') = ' 사용자';
-- 이로 인해 혼란스럽거나 잘못된 일치가 발생할 수 있습니다
LPAD 및 RPAD는 문자열과 숫자의 형식을 지정하는 다목적 함수로, 특히 데이터 표시가 중요한 데이터베이스에 유용합니다. 이를 효과적으로 사용하는 시기와 방법을 이해하면 데이터의 가독성과 유용성을 크게 향상시킬 수 있습니다.
이러한 기능을 올바르게 사용하면 불필요한 복잡성 없이 데이터가 특정 서식 요구 사항을 충족하는지 확인할 수 있습니다.