내장함수중에서 문자열 처리함수
-- 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;
최근댓글