숫자 다루는 SQL 함수

숫자 자료에 쓰는 함수들도 있습니다.

GREATEST / LEAST

SELECT GREATEST(5, 3, 2, 1, 4) FROM DUAL;
SELECT LEAST(5, 3, 2, 1, 4) FROM DUAL;

여러 숫자들을 입력하면 최댓값, 최솟값 하나만 뽑아줍니다.

전에 했던 MAX(), MIN() 는 하나의 컬럼 안에서 최대, 최소를 1개 뽑아주는데

GREATEST(), LEAST() 는 하나의 행이나 숫자배열 안에서 최대, 최소를 뽑아줍니다.

위 코드는 뭐가 나오나 한줄 씩 실행해봅시다.

🎈DUAL TABLE이란?

1. 오라클 자체에서 제공되는 테이블

2. 간단하게 함수를 이용해서 계산 결과값을 확인 할 때 사용하는 테이블

3. SYS사용자가 소유하는 오라클의 표준 테이블

4. SYS사용자가 소유하지만 어느 사용자에서 접근 가능함

  1. 오직 한행, 한컬럼을 담고 있는 dummy 테이블


-- DUAL TABLE 조회 쿼리 
SELECT *
  FROM ALL_ALL_TABLES
 WHERE TABLE_NAME = 'DUAL';
 
 -- 사용예시
 SELECT SYSDATE FROM DUAL;

FLOOR/CEIL

SELECT FLOOR(10.1)FROM DUAL;
SELECT FLOOR(10.9)FROM DUAL;
                 
SELECT CEIL(10.1)FROM DUAL;
SELECT CEIL(10.9)FROM DUAL;

소수점 들어있는 숫자들을 정수로 변환할 때 씁니다.

FLOOR는 소수부분을 내림해서 정수로 바꿔주고

CEIL은 소수부분을 올림해서 정수로 바꿔줍니다.

위 코드는 차례로 10, 10, 11, 11이 출력됩니다.

소수점이 들어간 자료들을 깔끔하게 만들 때 쓰면 되겠군요.

ROUND/TRUNC

SELECT ROUND(10.777, 2) FROM DUAL;
SELECT TRUNC(10.777, 2) FROM DUAL; 

소수점 부분을 반올림/내림할 때 씁니다.

소괄호에 (숫자, 자릿수)를 입력할 수 있는데

ROUND는 입력한 자릿수까지 반올림해줍니다.

TRUNC는 입력한 자릿수까지 내림해줍니다.

위 코드는 차례로 10.78, 10.77 이 출력됩니다.

POWER

SELECT POWER(4, 2) FROM DUAL;

숫자를 거듭제곱하고 싶을 때 씁니다.

위의 예제는 4의 2승을 출력해줍니다.

ABS

SELECT ABS(-100) FROM DUAL;

숫자의 절댓값을 출력해줍니다.

역시 숫자함수들도 필요할 때 찾아쓰면 되는 정도라

이런게 있다고 알아두기만 해도 됩니다.

Last updated