공부한것들을 정리하는 블로그 입니다.
2.functions연습 본문
반응형
--문제1) EMP 테이블에서 scott의 사원번호,성명,담당업무(소문자로),부서번호를 출력하여라. select 사원번호,성명,담당업무(소문자로),부서번호 from emp; --문제2) DEPT 테이블에서 모든 부서의 부서명,위치를 첫 글자들만 대문자로 변환하여 출력하여라. select initcap(부서명), initcap(위치) from dept; --문제3) EMP 테이블에서 이름의 첫글자가 ‘K’ 보다 크고 ‘Y’보다 작은 사원의 사원번호, 이름, 업무, 급여, 부서번호를 출력하여라. 단 이름순으로 정렬하여라. select 사원번호, 이름, 업무, 급여, 부서번호 from emp where initcap(이름) > 'K', and initcap(이름) < 'Y' order by 2; --문제4) EMP 테이블에서 부서가 20번인 사원의 사원번호, 이름, 이름의 자릿수, 급여, 급여의 자릿수,급여를 30으로 나눈 나머지를 출력하여라. select 사원번호, 이름, length(이름) as "이름의 자릿수", 급여, length(급여) as "급여의 자릿수", (급여 % 30) as "급여를 30으로 나눈 나머지" from emmp where 부서 = 20; --날짜 기본 연산 --문제5) EMP 테이블에서 10번 부서원의 현재까지의 근무 월수를 계산하여 사원명, 입사일자, 근무월수를 출력하여라. select 사원명, 입사일자, months_between(sysdate, 입사날짜) as "근무월수" from emp where 부서번호 = 10; --문제6) EMP 테이블에서 10번 부서원의 입사 일자로부터 5개월이 지난 후 날짜를 계산하여 사원명, 입사일자, 5개월 후 날짜를 출력하여라. select 사원명, 입사일자, add_months(입사날짜) as "5개월 후 날짜" from emp where 부서번호 = 10; --문제7) EMP 테이블에서 10번 부서원의 입사 일자로부터 돌아오는 금요일을 계산하여 사원명, 입사일자, 돌아오는 금요일을 출력하여라. select 사원명, 입사일자, next_day(입사일자, '금요일') as "돌아오는 금요일" from emp where 부서번호 = 10; --문제8) EMP 테이블에서 입사한 달의 근무 일수를 계산하여 출력하여라. 단 토요일과 일요일도 근무 일수에 포함한다. select (to_char(sysdate - 입사날짜), 'ddd') as "근무 일수" /* select ( to_char(sysdate, 'ddd') - to_char(입사날짜, 'ddd') ) as "근무 일수" */ from emp; --문제 9) emp 테이블에서 현재까지의 근무일수가 몇 주 몇 일 인가를 사원명, 현재날짜, 총근무일수 , 몇주, 몇일 을 출력하여라. --단, 근무 일수가 많은 사람순으로 출력하여라. select 사원명, 현재날짜, ( to_char(sysdate, 'ddd') - to_char(입사날짜, 'ddd') ) as "총근무일수" , ( to_char(sysdate, 'ww') - to_char(입사날짜, 'ww') ) as "몇주", ( to_char(sysdate, 'ddd') - to_char(입사날짜, 'ddd') ) as "몇일" from emp order by 3; --문제 10) 부서번호가 10번이면 '10번 부서', 20번이면 '20번 부서', 30번이면 '30번 부서', 기타이면 '기타부서' 로 출력하세요. select concat(부서번호,'번 부서'), if 부서번호 = '기타' then '기타부서'; end if; from emp; --문제 11) 부서 번호가 20인 부서의 시간당 임금을 계산하여 출력하라. --단, 1달의 근무 일수는 12일이고, 1일 근무시간은 5시간이다. --출력양식은 사원명, 급여, 시간당 임금(소수 이하 1번째 자리에서 반올림)을 출력하라. select 사원명, 급여, round((급여 / 12 / 5), 1) as "시간당 임금(소수 이하 1번째 자리에서 반올림)" from dept where 부서번호 = 20; --문제 12) 급여가 $1,500부터 $3,000 사이의 사람은 급여의 15%를 회비로 지불하기로 하였다. --사원명, 급여, 회비(소수점 2째 자리에서 반올림)를 출력하라. select 사원명, 급여, round(급여 * 0.15, 2) as "회비(소수점 2째 자리에서 반올림)" from dept where 급여 in (15000, 3000); --문제 13) 모든 사원의 실수령액을 계산하여 출력하라. --단 급여가 많은 순으로 이름, 급여, 실수령액을 출력하라(실수령액은 급여에 대해 10%의 세금을 뺀 금액). select 이름, 급여, (급여 - (급여 * 0.1) ) as "실수령액" from emp order by 2; --문제 14) 입사일자를 '1996년 5월 14일'의 형태로 이름, 입사일을 출력하라. select 이름, to_char(입사일자, 'YYYY년 mm월 dd일') from emp;
반응형
'SK고용디딤돌 > DB' 카테고리의 다른 글
2.functions연습-script (0) | 2017.07.13 |
---|---|
1.WHERE조건절연습 - script (0) | 2017.07.13 |
1.WHERE조건절연습 (0) | 2017.07.13 |
Comments