티스토리 뷰

LPAD/RPAD

(컬럼 | '문자값' , 길이(바이트) [ , '덧붙이려고 하는 문자' ] )
제시된 컬럼|'문자값에 임의의 문자를 왼쪽 또는 오른쪽에 덧붙여 최종 N 길이 만큼의 문자열을 반환한다.
문자에 대해 통일감 있게 표시하고자 할 때 사용한다.

--20만큼의 길이 중 EMAIL 값은 오른쪽으로 정렬하고 공백을 왼쪽으로 채운다.

SELECT LPAD(EMAIL, 20)
FROM EMPLOYEE;

SELECT LPAD(EMAIL, 20, '#')
FROM EMPLOYEE;

 

--20만큼의 길이 중 EMAIL 값은 왼쪽으로 정렬하고 공백을 오른쪽으로 채운다.

SELECT RPAD(EMAIL, 20)
FROM EMPLOYEE;

SELECT RPAD(EMAIL, 20, '$')
FROM EMPLOYEE;

 

 

LTRIM / RTRIM

(컬럼 | '문자값' [ , '제거하고자 하는 문자' ] )

문자열의 왼쪽 혹은 오른쪽에서 제거하고자 하는 문자들을 찾아서 제거한 결과를 반환한다.

제거하고자 하는 문자값을 생략 시 기본값으로 공백을 제거한다.

 

--왼쪽 공백을 제거
SELECT LTRIM('   HI') FROM DUAL;
--오른쪽 공백을 제거
SELECT RTRIM('HI   ') FROM DUAL;
--왼쪽부터 '0'문자를 제거하여 1234560이 출력
SELECT LTRIM('0001234560', '0') FROM DUAL;
--왼쪽부터 공백과 123숫자들을 제거하여 HI123을 출력
SELECT LTRIM(' 123123HI123', ' 321') FROM DUAL;
-- 오른쪽부터 '0'을 제거하여 000123을 출력
SELECT RTRIM('000123000', '0') FROM DUAL;
--함수의 중첩사용으로 HI양쪽의 공백을 제거해서 출력
SELECT RTRIM(LTRIM('   HI   ')) FROM DUAL;

 

TRIM

( ( [ LEADING | TRAILING | BOTH ] '제거하고자 하는 문자값' FROM ) 컬럼 | '문자값' )

문자값 앞/뒤/양쪽에 있는 지정한 문자를 제거한 나머지를 반환한다.

제거하고자 하는 문자값을 생략 시 기본적으로 양쪽에 있는 공백을 제거한다.

FROM절은 필수는 아니다.

 

SELECT TRIM('   HI   ') FROM DUAL;
--양 쪽의 공백을 제거하여 출력

SELECT TRIM('Z' FROM 'ZZZHIZZZ') FROM DUAL;
SELECT TRIM(BOTH 'Z' FROM 'ZZZHIZZZ') FROM DUAL;
--양쪽의 Z 데이터를 제거하여 출력

SELECT TRIM(LEADING 'Z' FROM 'ZZZHIZZZ') FROM DUAL;
--앞쪽의 Z 데이터를 제거하여 출력

SELECT TRIM(TRAILING 'Z' FROM 'ZZZHIZZZ') FROM DUAL;
--뒤쪽의 Z 데이터를 제거하여 출력

 

SUBSTR

( 컬럼 | '문자값' , POSITION [ , LENGTH ] )

문자데이터에서 지정한 위치부터 지정한 개수만큼의 문자열을 추출해서 반환한다.

 

SELECT SUBSTR ('SHOWMETHEMONEY' , 7) FROM DUAL;
SELECT SUBSTR ('SHOWMETHEMONEY' , 5, 2) FROM DUAL;
SELECT SUBSTR ('SHOWMETHEMONEY' , -8, 3) FROM DUAL;

--[우 미 더]를 출력해 보아라.
SELECT SUBSTR ('쇼우 미 더 머니', 2, 5) FROM DUAL;



--EMPLOYEE 테이블에서 주민번호에 성별을 나타내는 부분만 잘라서 조회 (사원명, 성별코드)
SELECT EMP_NAME AS "사원명", 
	   SUBSTR(EMP_NO, 8, 1) AS "성별코드"
FROM EMPLOYEE;

--EMPLOYEE 테이블에서 여자 사원만 조회 (사원명, 성별코드)
SELECT EMP_NAME AS "사원명", 
	   SUBSTR(EMP_NO, 8, 1) AS "성별코드"
FROM EMPLOYEE
WHERE SUBSTR(EMP_NO, 8, 1) = '2';
/*실습문제 1
1. EMPLOYEE 테이블에서 주민등록번호 첫 번째 자리부터 성별까지를 추출한 결과값 오른쪽에 * 문자를 채워서 조회
 ex) 999999-2****** 형태로 출력*/
 
SELECT RPAD('991212-2', 14, '*')
FROM DUAL;

SELECT RPAD(SUBSTR(EMP_NO, 1, 8), 14, '*')
FROM EMPLOYEE;

/*실습문제 2
2. EMPLOYEE 테이블에서 사원명, 이메일, 아이디(이메일에서 '@' 앞의 문자 값만 출력)를 조회*/
SELECT EMP_NAME, 
	   EMAIL,
       SUBSTR(EMAIL, 1, 6),
       INSTR(EMAIL, '@')
FROM EMPLOYEE;

 

 

'데이터베이스(Database) 학습 > 1_오라클(Oracle)' 카테고리의 다른 글

4. 사용자 계정 생성, 실습 환경 구축  (0) 2021.10.22
3. 주요 용어와 SQL  (0) 2021.10.22
12. DDL(Data Definition Language)  (0) 2021.10.20
JOIN  (0) 2021.10.18
숫자 처리 함수  (0) 2021.10.13