반응형
개발을 하다 보면 문자열을 지정된 크기에 맞게 채워야 할 때가 있다.
전화번호를 11자리로 하는데 11자리 미만일경우 0으로 채워라는 경우처럼 말이다.
특정문자열을 지정한 자릿수만큼 내가 지정한 문자로 채우고자 할 때 쓰는 함수가 바로 LPAD 와 RPAD 함수이다.
PAD의 영어사전적 의미로는 '덧대다'의 뜻인데 개발에서는 이를 '덧붙이다'나 '채우다'라는 의미로 사용되고 있다.
즉, LEFT PAD ( LPAD ) 는 왼쪽으로부터 채우기, RIGHT PAD ( RPAD ) 는 오른쪽으로부터 채우기인 셈이다.
먼저 문법을 살펴보자.
LPAD ( x, n, y )RPAD ( x, n, y )
여기서 x 는 LPAD 나 RPAD 를 적용시키고자 하는 문자열이 들어간다.
n 은 자릿 수를 뜻 하고, y 는 x 가 n 자릿 수를 다 채우지 못했을 경우 채우게될 문자나 문자열을 뜻한다.
이 때, y 를 지정하지 않았을 경우 공백으로 빈 자리를 채우게 된다.
예제를 살펴보자.
y 를 지정하지 않았을 경우
SELECT LPAD ( 'ABCD', 10 ), RPAD ( 'ABCD', 10 ) FROM DUAL ;
결과
결과를 보면 알 수 있듯이 y 를 넣지 않으면 빈 자리를 공백으로 메꾸게 된다.
y 를 지정했을 경우
SELECT LPAD ( 'ABCD', 10, '@' ), RPAD ( 'ABCD', 10, '@' ) FROM DUAL ;
결과
결과를 보면 알 수 있듯이 빈 자리에 y 문자들로 채워지게 된다.
n 이 x 의 자릿 수보다 작을 경우
SELECT LPAD ( 'ABCD', 2, '@' ), RPAD ( 'ABCD', 2, '@' ) FROM DUAL ;
결과
결과를 보면 알 수 있듯이 x 의 자릿 수보다 적은 자릿 수 n 을 선언하면 데이터의 손실이 일어나게 된다.
y 를 두 개 이상의 문자를 지정할 경우
SELECT LPAD ( 'ABCD', 10, '@#$%' ), RPAD ( 'ABCD', 10, '@#$%' ) FROM DUAL ;
결과
위의 경우 빈자리는 6자리이나 지정된 문자 y 는 4개이다.
이 문자들을 빈자리에 순서대로 하나씩 채워나감을 반복하게 된다.
반응형
'Coding Story > DATABASE' 카테고리의 다른 글
[ Database ] 인덱스 Index (0) | 2020.10.28 |
---|---|
[ Oracle ] SQL 서브쿼리 SELECT, FROM, WHERE (3) | 2020.10.28 |
[ Oracle ] 오라클 중복데이터 처리, 중복데이터 한번만 (0) | 2020.10.28 |
[ Oracle ] 프로시저와 함수의 차이 (7) | 2020.10.28 |
[ Database ] 제 1정규화, 제 2정규화, 제 3정규화 (3) | 2020.10.28 |