2.CONCAT
CONCAT(c1,c2)
- c1문자열과 c2문자열을 결합하여 반환
- '||'연산자와 같은 기능
예시)회원테이블에서 마일리지가 3000이상인 회원정보를 조회하시오.
Alias는 회원명, 주민번호, 마일리지, 직업이다.
단, 주민번호는 XXXXXX-XXXXXXX형식으로 출력하되 CONCAT을 사용할 것
select mem_name as 회원명,
concat(concat(mem_regno1,'-'),mem_regno2) as 주민번호,
mem_mileage as 마일리지,
mem_job as 직업
from member
where mem_mileage >= 3000;
3.SUBSTR
SUBSTR(c, pos[, len])
- 주어진 문자열 c에서 pos위치에서 len갯수 만큼의 문자열을 추출하여 반환
- pos 값이 0인 경우 1로 취급
- len이 생략되면 pos위치 이후의 모든 문자열을 반환
- 가장 많이 사용되는 문자열 함수
예시) 회원테이블에서 주민등록번호를 이용하여 여성회원들의 나이를 출력하시오.
Alias는 회원명, 주민번호, 나이, 마일리지
select mem_name as 회원명,
mem_regno1||'-'||mem_regno2 as 주민번호,
extract(year from sysdate) -
to_number('19'||substr(mem_regno1,1,2)) as 나이,
mem_mileage as 마일리지
from member
where substr(mem_regno2,1,1) = '2';
문제]사원테이블에서 근속년수 15년 이상인 사원들에게 특별보너스를 지급하려한다.
보너스는 급여 * (근속년수/100)이며 소숫 첫자리에서 반올림한다.
지급액 = 급여 + 보너스
Alias는 사원명, 부서코드, 입사일, 근속년수, 보너스, 급여, 지급액이다.
select emp_name as 사원명,
hire_date as 입사일,
extract(year from sysdate) - extract(year from hire_date) as 근속년수,
round( salary*(extract(year from sysdate) - extract(year from hire_date))/100 ) as 보너스,
salary as 급여,
salary + round( salary*(extract(year from sysdate) - extract(year from hire_date))/100 ) as 지급액
from employees
where extract(year from sysdate) - extract(year from hire_date) >= 15;