숫자 함수
- ROUND
- 반올림해서 소수 이하 n 자리까지 출력한다.
- ROUND(123.4567, 3) → 123.457
- TRUNC
- 소수 이하 n 자리 미만을 삭제한다.
- TRUNC(123.4567, 3) → 123.456
- MOD
- m을 n으로 나눈 나머지를 계산한다.
- MOD(m, n), MOD(10,4) → 2
- POWER
- m의 n승을 계산한다.
- POWER(m, n), POWER(2, 4) → 16
- CEIL
- m보다 큰 가장 작은 정수를 검색한다.
- CEIL(m), CEIL(2.34) → 3
- FLOOR
- m보다 작은 가장 큰 정수를 검색한다.
- FLOOR(m), FLOOR(2.34) → 2
- SQRT
- 제곱근을 검색한다.
- SQRT(9) → 3
- SIGN
- 음수: -1, 양수: 1, 0: 0을 검색한다.
- SIGN(-3) → -1
날짜 함수
- ROUND
- 형식에 따라 반올림한다.
- ROUND(날짜, 형식)
- ROUND(sysdate, 'DD') → '2024/01/31'
- 형식
- YYYY 년
- MM 월
- DD 일
- HH24 시(24시간 표기)
- HH 시(12시간 표기)
- MI 분
- SS 초
- TRUNC
- 형식에 따라 절삭한다.
- TRUNC(날짜, 형식)
- TRUNC(sysdate, 'YYYY') → '2024/01/01'
- MONTHS_BETWEEN
- 두 날짜 간의 기간을 월 수로 계산한다.
- 단, 날짜1은 날짜2보다 이후여야 한다.
- MONTHS_BETWEEN('2013/09/01','2013/01/01') → 8
- LAST_DAY
- 날짜를 포함한 달의 마지막 날짜를 검색한다.
- LAST_DAY('2013/09/24') → 2013/09/30
- ADD_MONTHS
- 날짜에 n달을 더한 날짜를 검색한다.
- ADD_MONTHS('2011/07/01', 23) → 2013/06/01
- NEXT_DAY
- 날짜 이후 지정된 요일에 해당하는 날짜를 검색한다.(일요일, SUNDAY, 1모두 같은 값으로 사용할 수 있다.)
- NEXT_DAY('2013/07/14', '일요일') → 2013/07/21
실습
1. 교수들이 부임한 달에 근무한 일수는 몇 일인지 검색한다.
SELECT pno, pname, hiredate 부임일, LAST_DAY(TRUNC(hiredate))-TRUNC(hiredate)+1 "근무 일수"
FROM professor;
2. 교수들의 오늘까지 근무한 주가 몇 주인지 검색한다.
SELECT pno, pname, hiredate 부임일, TRUNC((sysdate-hiredate+1)/7) "근무 주수"
FROM professor;
3. 1991년에서 1995년 사이에 부임한 교수를 검색한다.
SELECT pno, pname, hiredate 부임년도
FROM professor
WHERE TRUNC(hiredate, 'YYYY') BETWEEN '91/01/01' AND '95/12/31';
4. 사원들이 일한 날짜에 대해서만 급여를 받는다면 급여가 현재와 동일하다는 조건에서 입 사한 달에 급여는 얼마나 지급되었을지 검색한다.
SELECT eno, ename, sal, hdate,
trunc(sal*(LAST_DAY(hdate)-TRUNC(hdate)+1)/(LAST_DAY(hdate)-TRUNC(hdate, 'MM')+1)) 입사한_달의_급여
FROM emp;
2024.01.24 - [SQL] - SQL select - 실습1
SQL select - 실습1
실습 테이블 테이블 내용 테이블 내용 emp dept salgrade 사원 부서 급여등급 student professor course score scgrade 학생 교수 과목 기말고사점수 점수등급 테이블 상세 구조 emp(사원) dept(부서) salgrade(급여등
backendmaster.tistory.com
<테이블 구조>
'SQL' 카테고리의 다른 글
SQL select - 실습15 (0) | 2024.02.01 |
---|---|
SQL select - 실습14 (0) | 2024.02.01 |
SQL select - 실습12 (1) | 2024.01.31 |
SQL select - 실습11 (0) | 2024.01.31 |
SQL select - 실습10 (0) | 2024.01.31 |