내장함수중에서 문자열 처리함수

    -- concat : 문자연결
    SELECT concat(ename,'님') 사원명, hiredate 입사일 from emp;
    
    -- initcap : 첫문자 대문자, lower : 전부 소문자, upper : 전부 대문자
    SELECT initcap('java spring mybatis'), lower('JAVA SPRING MYbatis'), upper('java spring mybatis') from dual;
    
    -- 빈자리를 문자로 채우기 
    -- 왼쪽에 채우는게 LPAD / 오른쪽에 채우는게 RPAD
    -- ename을 출력하는데 10자리로 찍고 나머지는 문자로 채워
    SELECT LPAD(ename, 10, '*'), RPAD(ename, 10, '-') FROM emp;
    
    -- SUBSTR(문자, 시작위치, 갯수) : n번째 자리부터 길이가 n개인 문자열을 반환
    SELECT job, SUBSTR(job, 2, 4), SUBSTR(job, -3, 2) from emp;
    -- length() : 문자수
    SELECT length(ename), ename from emp;
    
    -- 이름을 글자길이의 50%만큼 출력하고 나머지 문자는 *으로 출력
    SELECT RPAD(SUBSTR(ename, 1, trunc(length(ename)/2,1)), length(ename), '*') "rpad" from emp;
    
    select * from tab;
    --replace : 특정문자 치환
    --사원명에 'A'를 '에이'로 변경
    select ename, replace(ename, 'A', '에이') rep from emp;
    
    --instr : 특정문자열의 위치를 구한다. 없을때 0이 구해진다.
    select job, instr(job, 'NA') from emp;
    --                          3번째 문자부터 찾기
    select job, instr(job, 'A', 3) from emp;
    --                          2번째위치에서 2번째 A를 구해진다.
    select job, instr(job, 'A', 2, 2) from emp;
    
    --1234567890
    --qnrtjd96@naver.com
    --문자 일부 :  substr
    --@위치 : instr
    select substr('qnrtjd96@naver.com', 1, instr('qnrtjd96@naver.com', '@')-1) 아이디, 
           substr('qnrtjd96@naver.com', instr('qnrtjd96@naver.com','@') +1, 
           length('qnrtjd96@naver.com')-instr('qnrtjd96@naver.com','@')) 도메인, 
           concat('아이디:', replace ('soulmate026@daum.net', '@', ', 도메인:')) 한줄로표기 from dual;
    
    --trim 특정한 문자를 제거, 제거할 문자를 입력안하면 공백제거
    select * from emp;
    
    --trim : 양쪽의 문자 또는 숫자를 제거
    --숫자는 오른쪽정렬 문자는 왼쪽정렬
    --ltrim : 왼쪽에 해당되는문자를 제거
    select sal, trim(1 from sal)급여, LTRIM('xyxxyTTxyxyxy','xy') from emp;
    
    
    select * from tab;
    select * from dept;
    
    --decode
    --10:총무부, 20:인사부, 30:기획부
    select ename, deptno, decode(deptno, 10, '총무부', 20, '인사부', 30, '기획부') as 부서명 from emp;
    
    select empno 사원번호, ename 사원명, job 담당업무, hiredate 입사일, sal 급여, comm 보너스, sal+nvl(comm,0) 지급액  from emp;
    
    select * from emp;
    
    select ename, job, sal, nvl(comm, 0) from emp where (( sal>2500 and sal<4000) or job='SALESMAN') order by sal desc;
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기