우와한 개발자

[SQL] 숫자 함수 - ROUND, TRUNC, CEIL, FLOOR, MOD, DUAL테이블 핵심 정리

by 우와한개발자

[ 숫자 함수 ]

함수 설명
ROUND(c숫자 또는 표현식, n) n번째 소수점 자리로 반올림
TRUNC(숫자 또는 표현식 n) n번째 소수점 이후 버림
CEIL(숫자 또는 표현식) 올림
FLOOR(숫자 또는 표현식) 내림
ABS(숫자 또는 표현식) 절댓값
SIGN(숫자 또는 표현식) 부호 반환 (1, 0, -1)
MOD(m, n) 나머지
REMAINDER(m, n) 나머지 (MOD와 유사)
POWER(m, n) 거듭제곱
SQRT(n) 제곱근
SIN(radian), COS(radian), TAN(radian) 삼각함수
SINH(radian), COSH(radian), TANH(radian) 쌍곡선 함수
EXP(n) e의 n승
LN(n) 자연로그
LOG(m, n) 로그 (밑 m)

 

1. ROUND, TRUNC

  • ROUND(숫자 또는 표현식, n) : n번째 소수점 자리로 반올림
  • TRUNC(숫자 또는 표현식, n) : n자리 절삭
ROUND(123.456, 2)  -- 123.46  ← 3번째 자리 5 이상 → 올림
TRUNC(123.456, 2)  -- 123.45  ← 3번째 자리 무조건 버림

ROUND(123.454, 2)  -- 123.45  ← 3번째 자리 4 이하 → 내림
TRUNC(123.454, 2)  -- 123.45  ← 

ROUND(salary * 1.1, 0)
ROUND(AVG(salary), 0)

-- 날짜에도 사용 가능 (Oracle)
ROUND(SYSDATE, 'MM')   -- 월 기준 반올림 (16일 이후면 다음달 1일)
TRUNC(SYSDATE, 'MM')   -- 월 기준 버림 → 항상 1일
TRUNC(SYSDATE)         -- 시간 제거 (날짜만)

 

2. CEIL, FLOOR

  • CEIL(숫자 또는 표현식) : 올림
  • FLOOR(숫자 또는 표현식) : 내림
CEIL(1.2)-- 2
FLOOR(1.8)-- 1

 

3. ABS

  • ABS(숫자 또는 표현식) : 절댓값
ABS(-10)-- 10

 

4. MOD

  • MOD(m, n) : m을 n으로 나눈 나머지
MOD(10,3)-- 1

 

5. POWER, SQRT

  • POWER(m, n) : m의 n제곱
  • SQRT(n) : 제곱근
POWER(2,3)-- 8

 

 

6. DUAL 테이블

  • Oracle에서 제공하는 더미(가짜) 테이블
  • 행 1개, 열 1개짜리 테이블
  • Oracle이 자동으로 제공 (직접 만들 필요 없음)
  • 값 계산, 함수 테스트할 때 주로 사용
  • MySQL, PostgreSQL은 SELECT 문에서 FROM 절이 없이도 되지만 Oracle은 안 되기때문에 제공함
-- ❌ Oracle에서 오류
SELECT 1+1;

-- ✅ DUAL 사용
SELECT 1+1 FROM dual;

-- 함수 테스트
SELECT SYSDATE FROM dual;
SELECT ROUND(123.456, 2) FROM dual;
SELECT UPPER('hello') FROM dual;

-- 계산
SELECT 10 * 20 FROM dual;

-- 시퀀스 값 조회
SELECT sequence_name.NEXTVAL FROM dual;

블로그의 정보

우와한개발자 님의 블로그

우와한개발자

활동하기