IT•개발 끄적/SQL

[SQL] 오라클 문자열 반환 (Oracle LTRIM, RTRIM, LPAD, RPAD)

소다맛사탕 2021. 5. 18. 21:47
반응형

오라클 SQL을 사용시 문자열을 반환하는 방법이 여러가지 있는데..

이번 포스팅에서는 문자열을 왼쪽 또는 오른쪽에서 삭제 및 추가하는 함수에 대해 알아보겠습니다.

 

대부분 앞에 0을 붙이거나 뒤에 0을 붙이거나

글자를 자르고 싶을때 쓰이기도 하는데 자세하게 사용방법을 알아보겠습니다.

 

 

1. LTRIM

사용방법 : LTRIM(문자, 제거할문자)

; 왼쪽 끝에서 제거한 후 나머지 문자열을 반환.

 

2. RTRIM

사용방법 : RTRIM(문자, 제거할문자)

; 오른쪽 끝에서 제거한 뒤 나머지 문자열을 반환.

 

SELECT 
	LTRIM('123000123', '123') AS test01,
	LTRIM('가나다라마', '가') AS test02,
	RTRIM('123000123', '123') AS test03,
	RTRIM('가나다라마', '마') AS test04
FROM
	DUAL;

---- 결과 ----

oracle LTRIM, RTRIM result

결과와 같이 명시된 문자를 한번씩만 제거하는걸 볼 수 있습니다.

LTRIM, RTRIM은 왼쪽과 오른쪽 기준으로 문자를 제거하는데 여기서

만약 해당 문자를 제거 하는데에 있어 제거하려는 문자가 가운데에 있다면 문자열을 그대로 반환합니다.

SELECT 
	LTRIM('000123000', '123') AS test01_1,
	LTRIM('나나가나나', '가') AS test02_1,
	RTRIM('000123000', '123') AS test03_1,
	RTRIM('다다나다다', '마') AS test04_1
FROM
	DUAL;

---- 결과 ----

oracle LTRIM, RTRIM 문자열 그대로.

 

3. LPAD

사용방법 : LPAD(문자, n자리, 추가할문자)

; 매개변수로 들어온 '문자'를 n자리만큼 왼쪽부터 채워 '추가할문자'를 반환.

 

4. RPAD

사용방법 : RPAD(문자, n자리, 추가할문자)

; 매개변수로 들어온 '문자'를 n자리만큼 오른쪽부터 채워 '추가할문자'를 반환.

 

SELECT 
	LPAD('TEST', 6, '00') AS LPAD_TEST01,
	LPAD(MAX(1) + 1, 4, 0) AS LPAD_TEST02,
	LPAD(MAX(1) + 1, 5, 40) AS LPAD_TEST03,
	'00' || 'TEST' AS TEST01,
	RPAD('TEST', 6, '00') AS RPAD_TEST01,
	RPAD(MAX(1) + 1, 4, 0) AS RPAD_TESt02,
	RPAD(MAX(1) + 1, 5, 30) AS RPAD_TESt03
FROM
	DUAL;

---- 결과 ----

oracle LPAD, RPAD result

결과와 같이 문자의 갯수만큼 자릿수를 적고

추가할문자가 문자일 경우는 문자를 그대로 반환.

숫자는 하나 또는 여러개를 적고 자리수만큼 반환하는 결과가 나오는걸 확인할 수 있습니다.

물론 문자나 숫자가 정해진 자리수를 넘어가면 결과에 나오지 않고 짤린 형태로 나오게 됩니다.

 

※ 문자열에 대해 n자리만큼 추가하는 것은 대부분 '일련번호'를 생성하거나 문서의 '서식번호' 등에 쓰입니다.