SQL 주요 함수(숫자 함수)
* 이 장에서 다룰 내용
1. DUAL 테이블과 SQL 함수 분류
2. 숫자 함수
01. DUAL 테이블과 SQL 함수 분류
■ DUAL 테이블의 구조를 살펴보기 위해서 DESC 명령어를 사용합니다.
예 | DESC DUAL |
■ DUAL 테이블은 DUMMY라는 단 하나의 컬럼으로 구성되어 있습니다.
■ 이 컬럼의 최대 길이는 1입니다.
■ DUMMY 컬럼엔 과연 어떤 값이 저장되어 있는 것일까요?
예 | SELECT * FROM DUAL; |
■ DUAL 테이블은 DUMMY라는 단 하나의 컬럼에 X라는 단 하나의 로우만을 저장하고 있으나 이 값은 아무런 의미가 없습니다.
■ 쿼리문의 수행 결과가 하나의 로우로 출력되도록 하기 위해서 단 하나의 로우를 구성하고 있을 뿐입니다.
■ 일시적인 산술연산이나, 날짜연산, 고정 문자를 줄 때 DUAL을 사용함.
02. 숫자 함수
2-1 절대값을 구하는 ABS 함수
■ ABS 함수는 절대값을 구합니다.
절대값은 방향은 없고 크기만 있는 것으로서 주어진 데이터가 음수일 경우 양수로 표현합니다.
■ -10에 대한 절대값을 구해봅시다.(10)
예 | SELECT -10, ABS(-10) FROM DUAL; |
2-2 소수점 아래를 버리는 FLOOR 함수
■ FLOOR 함수는 소수점 아래를 버립니다. 34.5678를 FLOOR 함수에 적용하면 34가 구해집니다.
예 | SELECT 34.5678, FLOOR(34.5678) FROM DUAL; |
select 34.5678, FLOOR(34.5678)
from dual;
2-3 특정 자릿수에서 반올림하는 ROUND 함수
■ 34.5678을 반올림하면 35입니다. 이와 같이 반올림한 결과를 구하기 위한 함수로 오라클에서는 ROUND가 제공됩니다.
예 | SELECT 34.5678, ROUND(34.5678) FROM DUAL; |
■ ROUND 함수는 지정한 자릿수에서 반올림을 할 수 있도록 자릿수를 지정할 수 있습니다.
형식 | ROUND(대상, 자릿수) |
■ ROUND 함수의 두 번째 인자 값이 2이면 소수점 이하 세 번째 자리에서 반올림하여 소수점 이하 두 번째 자리까지 표시합니다. 즉, ROUND(34.5678, 2)의 결과는 34.57이 됩니다.
예 | SELECT 34.5678, ROUND(34.5678, 2) FROM DUAL; -- 밑줄친 숫자, 세번째 자리에서 연산함. |
■ 자릿수에 음수를 지정할 수 있는데 이럴 경우 소수점 이하가 아니라 반대쪽인 일단위, 십단위, 백단위 순으로 거슬러 올라가게 되며, 인자 값이 양수일 때와는 달리 해당 자리에서 반올림이 일어나게 됩니다.
예 | SELECT 34.5678, ROUND(34.5678, -1) FROM DUAL; |
select round(34.5678, -1) FROM dual;
■ ROUND(34.5678, -1)의 결과는 30이 됩니다.
select round(35.5678, -1) FROM dual;
■ ROUND(35.5678, -1)의 결과는 40이 됩니다.
2-4 특정 자릿수에서 잘라내는 TRUNC(트렁크) 함수
■ TRUNC 함수는 지정한 자리 수 이하를 버린 결과를 구해주는 함수 입니다.
예 | SELECT TRUNC(34.5678, 2), TRUNC(34.5678, -1), TRUNC(34.5678) FROM DUAL; |
■ TRUNC 함수의 두 번째 인자 값이 2이면 소수점 이하 세 번째 자리에서 버림 연산을 하여 소수점 이하 두 번째 자리까지 표시합니다.
■ 두 번째 인자 값이 0인 경우에는 소수점자리에서 버림 연산을 하고 -1인 경우는 일의 자리에서 버림 연산을 하며 두 번째 인자가 주어지지 않은 경우 0으로 간주 되어 소수점자리에서 버림 연산을 수행합니다.
2-5 나머지 구하는 MOD 함수
■ MOD 함수는 나누기 연산을 한 후에 구한 몫이 아닌 나머지를 결과로 되돌려주는 함수입니다.
예 | SELECT MOD(27, 2), MOD(27, 5), MOD(27, 7) FROM DUAL; |
SELECT MOD(5, 3)
FROM DUAL;
-- 나머지 2..
* 탄탄히 다지기
select * from emp where MOD(empno, 2) = 1;
학습정리.
'Study > OracleDB' 카테고리의 다른 글
12강 오라클 SQL 날짜함수. (2) | 2022.09.08 |
---|---|
11강 오라클 SQL 문자함수 (0) | 2022.09.06 |
9강 오라클 SQL Like, sort 정렬 (4) | 2022.09.06 |
8강 오라클 논리연산자, Between in (1) | 2022.09.06 |
7강 오라클 SQL 조건연산자 (4) | 2022.09.05 |