반응형
LPAD, RPAD 간단한 예제를 통한 사용 방법
작업 환경
OS: Oracle Linux 8.9
DB: Oracle 19c
LPAD, RPAD는 데이터 출력할 때 특정 부분에 데이터를 채워 넣거나 민감한 데이터 일부만 보여줄 때 많이 사용합니다.
- LPAD는 데이터의 앞부분에 원하는 데이터를 넣을 때 사용
- 상품 코드 01, 2, 3 데이터가 있을때 01, 02, 03으로 변경이 필요하다면 LPAD 함수를 사용합니다.
- RPAD는 데이터의 뒷부분에 원하는 데이터를 넣을 때 사용
- 고객번호 01231234가 있을 때 뒷 부분 1234를 *로 변경처리할때 사용하기 편리합니다.
- LPAD는 데이터의 앞부분에 원하는 데이터를 넣을 때 사용
- 상품 코드 01, 2, 3 데이터가 있을때 01, 02, 03으로 변경이 필요하다면 LPAD 함수를 사용합니다.
- RPAD는 데이터의 뒷부분에 원하는 데이터를 넣을 때 사용
- 고객번호 01231234가 있을 때 뒷 부분 1234를 *로 변경처리할때 사용하기 편리합니다.
샘플 데이터 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
SELECT
PRD_NM,
AMT,
PRD_CD,
CUST_NO
FROM (
SELECT
'콜라' AS "PRD_NM",
'1000' AS "AMT",
'01' AS "PRD_CD",
'01231234' AS "CUST_NO"
FROM DUAL
UNION ALL
SELECT '환타', '800', '2', '04561280' FROM DUAL
UNION ALL
SELECT '맥콜', '800', '3', '02341281' FROM DUAL
);
PRD_NM AMT PRD_CD CUST_NO
---------- ---------- ------------ ----------
콜라 1000 01 01231234
환타 800 2 04561280
맥콜 800 3 02341281
|
cs |
LPAD 함수 사용 방법
- PRD_CD 데이터 01, 1, 2 --> 01, 01, 02 변경
- LPAD(PRD_CD, 2, 0) --> 2는 두자리, 0은 채워지는 숫자
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
SELECT
PRD_NM,
AMT,
LPAD(PRD_CD, 2, 0) AS "PRD_CD",
CUST_NO
FROM (
SELECT
'콜라' AS "PRD_NM",
'1000' AS "AMT",
'01' AS "PRD_CD",
'01231234' AS "CUST_NO"
FROM DUAL
UNION ALL
SELECT '환타', '800', '2', '04561280' FROM DUAL
UNION ALL
SELECT '맥콜', '800', '3', '02341281' FROM DUAL
);
PRD_NM AMT PRD_CD CUST_NO
---------- ---------- ------------ ----------
콜라 1000 01 01231234
환타 800 02 04561280
맥콜 800 03 02341281
|
cs |
RPAD 함수 사용 방법
- CUST_NO(고객번호) 뒷자리 4개 *로 변경 처리
- RPAD(SUBSTR(CUST_NO,1,4), 8, '*')
- SUBSTR(CUST_NO,1,4) SUBSTR 함수를 이용하여 데이터 앞자리 4개만 출력한다.
- 숫자 8은 CUST_NO 컬럼의 총 길이
- 뒷자리 4개는 '*'로 채운다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
SELECT
PRD_NM,
AMT,
LPAD(PRD_CD, 2, 0) AS "PRD_CD",
RPAD(SUBSTR(CUST_NO,1,4), 8, '*') AS "CUST_NO"
FROM (
SELECT
'콜라' AS "PRD_NM",
'1000' AS "AMT",
'01' AS "PRD_CD",
'01231234' AS "CUST_NO"
FROM DUAL
UNION ALL
SELECT '환타', '800', '2', '04561280' FROM DUAL
UNION ALL
SELECT '맥콜', '800', '3', '02341281' FROM DUAL
);
PRD_NM AMT PRD_CD CUST_NO
---------- ---------- ------------ ----------
콜라 1000 01 0123****
환타 800 02 0456****
맥콜 800 03 0234****
|
cs |
반응형
'Oracle Database > Oracle SQL' 카테고리의 다른 글
[SQL] 날짜 이용한 응용 SQL 작성 #2 (0) | 2012.07.24 |
---|---|
[SQL] 날짜 이용한 응용 SQL 작성 #1 (0) | 2012.07.23 |
[오라클] 함수를 이용하여 간단하게 합계 및 백분율 구하기 (0) | 2011.12.02 |
[오라클] 컬럼명 한줄로 쓰기 (0) | 2011.07.11 |
[오라클] count를 빠르게 (0) | 2010.02.18 |