숫자형 함수
.수학적 함수(ABS,SIGN,POWER,SQRT,..등)
.ABS(N) : N의 절대값
.SIGN(N): N의 부호(음수 :-1, 양수 : 1, 0: 0)
.POWER(N,E) : N의 E승 값 반환
.SQRT(N) : N의 평방근(ROOT 값)
사용예)
SELECT ABS(-100),
ABS(0.000001),
SIGN(10000000),
SIGN(-10000000),
SIGN(0.0000001),
SIGN(-0.0000001),
SIGN(0),
POWER(2,10),
SQRT(1024)
FROM DUAL;
GREATEST, LEAST
.주어진 자료 중 최대값과 최소값을 구함
(사용형식)
GREATEST(N1,N2,......) : N1,N2,......중 최대값 반환
LEAST(N1,N2,.....) : N1,N2,......중 최소값 반환
사용 예)
SELECT GREATEST(20,40,5,70),LEAST(20,40,5,70) FROM DUAL;
예)회원테이블에서 회원들이 보유한 마일리지를 조회하여
1000미만인 회원들의 마일리지를 1000으로 반드시오.
ALIAS는 회원번호, 회원명, 보유 마일리지, 수정 마일리지
SELECT MEM_ID AS 회원번호,
MEM_NAME AS 회원명,
MEM_MILEAGE AS "보유 마일리지",
GREATEST(MEM_MILEAGE, 1000) AS "수정 마이리지"
--컬럼 별칭에 글자이외의 것이 들어가면 ""를 써줘야한다.
FROM MEMBER;
**회원테이블에서 최대마일리지를 구하시오
SELECT B.MEM_NAME AS 회원명,
A.MILE_MAX AS 마일리지
FROM (SELECT MAX(MEM_MILEAGE) AS MILE_MAX
FROM MEMBER) A, MEMBER B
WHERE A.MILE_MAX=B.MEM_MILEAGE;
.ROUND, TRUNC
.주어지 숫자자료를 반올림(ROUND)또는 자리버림(TRUNC)연산후
결과값 반환
(사용형식)
ROUND(N,I) : -I가 양수이면 주어진 자료 N에서 소숫점 이하 I+1번째
자리에서 반올림하여 I번째 수까지 반환
-I가 음수이면 주어진 자료 N에서 정수부의 I번째 자리에서
반올림하여 결과 반환
-I를 생략하면 0으로 간주
TRUNC(N,I) : -I가 양수이면 주어진 자료 N에서 소숫점 이하 I+1번째
자리에서 반올림하여 I번째 수까지 반환
-I가 음수이면 주어진 자료 N에서 정수부의 I번째 자리에서
자리버림하여 결과 반환
-I를 생략하면 0으로 간주
UPDATE EMPLOYEES
SET SALARY=SALARY+SALARY*0.17;
예)사원테이블의 자료를 이용하여 이번달 급여를 조회하시오
.이번달에 보너스를 지급 : 보너스=급여의 13%
지급액=본봉+보너스
ALIAS는 사원번호, 사원명, 본봉, 보너스, 지급액
단 보너스 및 지급액은 소수 첫 자리까지 나타내시오(2번재 자리에서 반올림)
단 보너스 및 지급액은 일의 자리에서 반올림(2번재 자리에서 반올림)
SELECT EMPLOYEE_ID AS 사원번호,
EMP_NAME AS 사원명,
SALARY AS 본봉,
SALARY * 0.13 AS 보너스1,
-- ROUND(SALARY * 0.13,1) AS 보너스2,
ROUND(SALARY * 0.13,-1) AS 보너스2,
-- ROUND(SALARY+(SALARY * 0.13)-1 AS 지급액1,
ROUND(SALARY,-1)+ROUND(SALARY * 0.13,-1) AS 지급액2
FROM EMPLOYEES;
TRUNC 예)
SELECT EMPLOYEE_ID AS 사원번호,
EMP_NAME AS 사원명,
SALARY AS 본봉,
SALARY * 0.13 AS 보너스1,
-- ROUND(SALARY * 0.13,1) AS 보너스2,
TRUNC(SALARY * 0.13,-1) AS 보너스2,
-- ROUND(SALARY+(SALARY * 0.13)-1 AS 지급액1,
TRUNC(SALARY,-1)+ROUND(SALARY * 0.13,-1) AS 지급액2
FROM EMPLOYEES;
'DB > SQL(오라클)' 카테고리의 다른 글
오라클(SQL)날짜함수(SYSDATE, NEXT_DAY(D,C), LAST_DAY(D), EXTRACT(FMT,FROM D)) (0) | 2021.03.12 |
---|---|
오라클(SQL)숫자형 함수(mod, remainder, CEIL(N), FLOOR(N), WIDTH_BUCKET) (0) | 2021.03.12 |
오라클(SQL)숫자형 함수 (0) | 2021.03.12 |
오라클(SQL)문자열 함수(SUBSTR, REPLACE, INSTR, (LENGTH, LENGTHB)) (0) | 2021.03.12 |
오라클(SQL)함수 (FUNCTION) (0) | 2021.03.12 |