본문 바로가기
SQL

SQL select - 실습13

by hj_it 2024. 1. 31.
숫자 함수
  1. ROUND
    • 반올림해서 소수 이하 n 자리까지 출력한다.
    • ROUND(123.4567, 3) → 123.457
  2.  TRUNC
    • 소수 이하 n 자리 미만을 삭제한다.
    • TRUNC(123.4567, 3) → 123.456
  3. MOD
    • m을 n으로 나눈 나머지를 계산한다.
    • MOD(m, n), MOD(10,4) → 2
  4. POWER
    • m의 n승을 계산한다.
    • POWER(m, n), POWER(2, 4) → 16
  5. CEIL
    • m보다 큰 가장 작은 정수를 검색한다.
    • CEIL(m), CEIL(2.34) → 3
  6. FLOOR
    • m보다 작은 가장 큰 정수를 검색한다.
    • FLOOR(m), FLOOR(2.34) → 2
  7. SQRT
    • 제곱근을 검색한다.
    • SQRT(9) → 3
  8. SIGN
    • 음수: -1, 양수: 1, 0: 0을 검색한다.
    • SIGN(-3) → -1

 

 

날짜 함수
  1. ROUND
    • 형식에 따라 반올림한다.
    • ROUND(날짜, 형식)
    • ROUND(sysdate, 'DD') → '2024/01/31'
    • 형식
      • YYYY 년
      • MM 월
      • DD 일
      • HH24 시(24시간 표기)
      • HH 시(12시간 표기)
      • MI 분
      • SS 초
  2. TRUNC
    • 형식에 따라 절삭한다.
    • TRUNC(날짜, 형식)
    • TRUNC(sysdate, 'YYYY') → '2024/01/01'
  3. MONTHS_BETWEEN
    • 두 날짜 간의 기간을 월 수로 계산한다.
    • 단, 날짜1은 날짜2보다 이후여야 한다.
    • MONTHS_BETWEEN('2013/09/01','2013/01/01') → 8
  4. LAST_DAY
    • 날짜를 포함한 달의 마지막 날짜를 검색한다.
    • LAST_DAY('2013/09/24') → 2013/09/30
  5. ADD_MONTHS
    • 날짜에 n달을 더한 날짜를 검색한다.
    • ADD_MONTHS('2011/07/01', 23) → 2013/06/01
  6. 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