본문 바로가기

Oracle/SQL

SQL 단일행 함수 - 문자함수 (Replace), (Lpad, Rpad) 문자 대체하기, 특정철자를 n 개만큼 채우기

Replace (특정철자를 다른철자로 변경하기)

select ename, replace(sal, 0 , '*')

from emp;

 

노*정 으로 출력 되게 하시오 (병원 전광판에 많이 쓰이는 SQL 함수)

select replace(ename, substr(ename,2,1),'*')

from emp14

설명 : 가운데 이름을 * 로 대체하여 출력해야하기 때문에

replace ( 컬럼명,  바뀔철자, '대체할 문자')

컬럼명은 : ename

바뀔 철자 : 이름 두번째 철자를 추출해야한다.

—> substr(ename , 2, ,1 ) —> ename 의 두번째 순서의 글자를 1개만 추출한다

대체할 문자 : '*'

select 절의 의미 : ename 의 (2번째철자로부터 1개) 철자를 추출하여서 * 으로 대체해라 


LPAD, RPAD (특정 철자를 n 개 만큼 채우기)

select ename, lpad(sal, 10, '*') : 전체 10 자리로 잡고 나머지는 * 로 왼쪽방향으로 채워 넣는다

form emp

만약 rpad 함수를 쓰게 되면 오른쪽으로 채우게 된다.