SQL 함수 - 문자 함수

이승범·2024년 9월 15일

LOWER, UPPER 함수 사용 예시
테이블명 조회할때는 테이블명은 대문자로 조회해야함
그게 싫다면, UPPER 함수를 이용

select upper('SEOUL korea 12345') from dual;
-- korea => KOREA 
select lower('SEOUL korea 12345') from dual;
-- SEOUL => seoul

SUBSTR 함수 사용 예시
SQL에서 인덱스는 1부터 시작한다.

select substr('seoul korea', 7, 3) from dual;
-- kor 7번째 인덱스부터 3개 추출
select substr('seoul korea', -5, 3) from dual;
-- kor kor 뒤에서 5번째부터 3개
select substr('seoul korea', 7) from dual;
-- korea 7번째 인덱스부터 끝까지

LPAD,RPAD 함수 사용 예시

select lpad('korea', 12, '*') from dual;
-- ********korea
select rpad('korea', 12, '*') from dual;
-- korea*******
select lpad('korea', 3, '*') from dual;
-- kor
select lpad('korea', 0, '*') from dual;
-- null
select lpad('대한', 6, '*') from dual;
-- **대한 : LPAD에서 한글은 두칸씩 출력
select rrn, rpad(substr(rrn, 1, 8), 14, '*') from 테이블명;
--980711-1****** rrn은 주민번호 형식임
select tel, rpad(substr(tel, 1, 10), 13, '*') from 테이블명;
--010-5782-5*** 뒤에서 3개를 *로

select sal, lpad('*', trunc(sal/1000000), '*') from 테이블명;
-- 1000000당 * 하나 출력 여기서 sal은 1부터 5000000까지 수가 저장되어있는 컬럼
        
select name,
substr(name, 1, 1) || NVL(LPAD('*',length(name)-2, '*'),'*') || substr(name, -1, 1) as name2 
from 테이블명;
-- 이름 마스킹(한나:한* , 한한나:한*나 , 한한한나:한**나)

LTRIM,RTRIM 함수 사용 예시

select ':' || ltrim('     우리나라    ') || ':' from dual;
-- 왼쪽 공백 제거
select ':' || rtrim('     우리나라    ') || ':' from dual;
-- 오른쪽 공백 제거
select ':' || trim('     우리나라    ') || ':' from dual;
-- 양쪽 공백 제거
select ':' || replace('     우리나라   ', ' ') || ':' from dual;
-- 중간 공백 제거
select ltrim('AABBBCDBA', 'BA') from dual;
-- 문자열이 B나 A로 시작하는 경우 제거
-- CDBA
select rtrim('우리나라대한', '대한') from dual;
-- 우리나라 오른쪽 대한 제거
select 컬럼, rtrim(컬럼, '부') || '팀' from 테이블명;
-- rtrim을 이용해 부를 팀으로 바꾸는 법.

TRANSLATE 함수 사용 예시

select TRANSLATE('abcccabccad' , 'c', 'n') from dual;
-- c를 n으로 바꾸는 것
select TRANSLATE('abcabccbcx' , 'abc', 'ab') from dual;
-- 'abc'중에서 c 제거
select replace('abcabccbc' , 'c') from dual;
-- ababb : c 제거
select TRANSLATE('2KB4ETY' , '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' , '0123456789') from dual;
-- A-Z 알파벳 제거 	
        
profile
creative

0개의 댓글