SQL 숫자함수
Round(숫자, 원하는 자릿수) : 주어진 숫자를 반올림하여 출력함
SELECT ROUND(column_name,decimals) FROM table_name;
-- 급여가 1500부터 3000사이의 사람은 급여의 15%를 월회비로 지불
-- 출력양식은 이름, 급여, 회비(10원 단위는 반올림 처리) 정보를 출력
SQL> select ename, sal, round((sal*0.15),-2) 회비 from emp where sal between 1500 and 3000;
회비 = sal * 0.15
정수 2번째 자리에서 반올림 : 100 단위로 계산
Trunc(숫자, 원하는 자릿수) : 주어진 숫자를 버림한 후 출력함
오라클에서는 trunc 로 하면 되는데 MySQL 에서는 truncate 로 해야 한다.
-- 30번(영업부) 부서원의 연봉을 계산하여 이름, 부서번호, 급여, 연봉 정보를 연봉이 큰 순서데로 출력하라.
-- 연말 특별 보너스 150%, 연봉은 천단위 미만 절삭처리
SQL> select ename, deptno, sal ,trunc(((sal * 12) + (sal * 1.5)),-3) 연봉 from emp where deptno =30 order by 연봉 desc;
-- 급여(sal)가 2000 이상인 모든 사람은 급여의 5%를 경조비로 내기로 하였다 .
-- 이름, 급여, 수당(소수점이하 절삭 처리) 정보를 출력하라.
SQL> select ename as 이름, sal as 급여 , trunc((sal*0.05),0) 경조비 from emp where sal >= 2000;
MOD(숫자, 나누기할 수) : 주어진 숫자를 나누기 한 후 나머지 값 출력함
CEIL(숫자) : 주어진 숫자와 가장 근접한 큰 정수를 출력함
SQL> select ceil(10.7) from dual;
FLOOR(숫자) : 주어진 숫자와 가장 근접한 작은 정수를 출력함
SQL> select floor(10.7) from dual;
POWER : 제곱하여 출력함
SQL> select sign(1000), sign(0), sign(-22) from dual;
-- 예제 : 사원테이블에서 입사일이 12월인 사원의 사번, 사원명, 입사일 검색
-- 사원번호(empno), 사원명(ename), 직급(job), 관리자번호(mgr), 입사일(hiredate), 급여(sal),
-- 커미션(comm), 부서번호(deptno)
SQL> select empno, ename, hiredate from emp where to_char(hiredate,'MM')='12';
'SQL' 카테고리의 다른 글
SQL 서브쿼리 (0) | 2014.12.19 |
---|---|
SQL 그룹함수, Group by, having 절 (0) | 2014.12.18 |
SQL 문자열 처리함수 instr, nvl, lpad 등 (0) | 2014.12.16 |
MySQL 테이블 이름변경, 삭제, 칼럼삭제, 칼럼추가 (0) | 2014.12.08 |
phpMyAdmin 을 이용한 테이블 등록 (0) | 2014.12.01 |