본문 바로가기
데이터베이스

오라클 실습 2. length와 RPAD를 이용해 이름의 빈 칸 채우기.

by 김마리님 2020. 3. 19.

언뜻 들으면 간단한 것 같고, LPAD로 채웠을때의 결과값이,

SELECT ENAME, LPAD(
    ENAME,9,'123456789'
)
FROM EMP
WHERE DEPTNO=10;

다음과 같이 예쁘게 출력되서, RPAD도 그럴 줄 알았다.

 

하지만 생각지도 못한 문제가 있었는데, RPAD가 문자열의 '시작'부터 채운다는 점이었다.

SELECT ENAME, RPAD(
    ENAME,
    9,
    '123456789'
)
FROM EMP
WHERE DEPTNO=10;

아니이런 ㅠㅠ

그렇기 때문에, 문자열로 설정한 '123456789'를, 문자열의 크기만큼 버리고, 그 이후를 붙였어야 했다.

문자열을 자를 수 있는 함수는, SUBSTR을 생각해보자.

문자열의 '크기' 를 알아낼 수 있는 함수는, LENGTH 함수이다.

이를 이용해, substr함수 내에 length 함수를 중복시켜서 문자열을 잘라내기로 한다.

SELECT ENAME, RPAD(
    ENAME,
    9,
    SUBSTR('123456789',LENGTH(ENAME)+1)
)
FROM EMP
WHERE DEPTNO=10;

결과값이 예쁘게, 글자 이후로 글자수만큼 출력되고 있는 모습을 볼 수 있다.

반응형