언뜻 들으면 간단한 것 같고, 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;
결과값이 예쁘게, 글자 이후로 글자수만큼 출력되고 있는 모습을 볼 수 있다.
반응형
'데이터베이스' 카테고리의 다른 글
3. 다양한 연산자 (0) | 2020.03.25 |
---|---|
오라클 날짜 데이터 포맷 변경하기 (0) | 2020.03.25 |
오라클 실습 1. 지역번호 블러처리 하기. (0) | 2020.03.19 |
2. 문자함수(substr, instr, replace ....) (0) | 2020.03.19 |
1. SELECT 명령어 (0) | 2020.03.19 |