[SQL] 021. 특정 철자를 N개 만큼 채우기
Updated:
초보자를 위한 SQL 200제 교재를 토대로 공부한 내용입니다.
오라클 SQL을 기반으로 합니다.
실습에 사용한 테이블은 정보문화사 홈페이지에서 받을 수 있습니다.
LPAD
, RPAD
를 이용해서 특정 철자를 N개 만큼 채울 수 있다.
-
LPAD(컬럼, 자리수, 채울문자)
: 컬럼 값에서 나머지 자리수만큼 왼쪽에 채울 문자로 출력 -
RPAD(컬럼, 자리수, 채울문자)
: 컬럼 값에서 나머지 자리수만큼 오른쪽에 채울 문자로 출력
[예시]
SAL의 자리수를 10으로 설정하고 나머지 공간을 ★로 채운다.
SELECT ENAME, LPAD(SAL, 10, '★') AS SAL1, RPAD(SAL, 10, '★') AS SAL2
FROM EMP;
[결과]
ENAME | SAL1 | SAL2 |
---|---|---|
KING | ★★★★★★5000 | 5000★★★★★★ |
BLAKE | ★★★★★★2850 | 2850★★★★★★ |
CLARK | ★★★★★★2450 | 2450★★★★★★ |
JONES | ★★★★★★2975 | 2975★★★★★★ |
MARTIN | ★★★★★★1250 | 1250★★★★★★ |
ALLEN | ★★★★★★1600 | 1600★★★★★★ |
TURNER | ★★★★★★1500 | 1500★★★★★★ |
JAMES | ★★★★★★★950 | 950★★★★★★★ |
WARD | ★★★★★★1250 | 1250★★★★★★ |
FORD | ★★★★★★3000 | 3000★★★★★★ |
SMITH | ★★★★★★★800 | 800★★★★★★★ |
SCOTT | ★★★★★★3000 | 3000★★★★★★ |
ADAMS | ★★★★★★1100 | 1100★★★★★★ |
MILLER | ★★★★★★1300 | 1300★★★★★★ |
[예시2]
다음 예시는 PAD를 응용해서 1,000당 ■ 하나로 BAR CHART를 생성한다.
SELECT ENAME, SAL, LPAD('■',ROUND(SAL/1000,0),'■') AS BAR_CHART
FROM EMP;
[결과2]
ENAME | SAL | BAR_CHART |
---|---|---|
KING | 5000 | ■■■■■ |
BLAKE | 2850 | ■■■ |
CLARK | 2450 | ■■ |
JONES | 2975 | ■■■ |
MARTIN | 1250 | ■ |
ALLEN | 1600 | ■■ |
TURNER | 1500 | ■■ |
JAMES | 950 | ■ |
WARD | 1250 | ■ |
FORD | 3000 | ■■■ |
SMITH | 800 | ■ |
SCOTT | 3000 | ■■■ |
ADAMS | 1100 | ■ |
MILLER | 1300 | ■ |
Leave a comment