# 숫자 다루는 SQL 함수

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



### **GREATEST / LEAST**

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

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

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

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

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





🎈DUAL TABLE이란?

&#x20; 1\. 오라클 자체에서 제공되는 테이블

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

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

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

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

```sql

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





### **FLOOR/CEIL**

```sql
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은 소수부분을 올림해서 정수로 바꿔줍니다.&#x20;

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

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





### **ROUND/TRUNC**

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

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

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

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

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

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



### **POWER**

```sql
SELECT POWER(4, 2) FROM DUAL;
```

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

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



### **ABS**

```sql
SELECT ABS(-100) FROM DUAL;
```

숫자의 절댓값을 출력해줍니다.&#x20;





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

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

