SMALL
안녕하세요, 코린이의 코딩 학습기 채니 입니다.
개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.
FUNCTION
- 일련의 작업 절차를 모아 놓은 database 객체
- 호출 시 인자를 전달하고 리턴 값을 받아 처리
- SQL의 function은 반드시 리턴 값을 가짐
함수 유형 | |
단일행 처리 함수 |
문자 처리 함수 |
숫자 처리 함수 | |
날짜 처리 함수 | |
형변환 처리 함수 | |
기타 함수 | |
그룹 처리 함수 |
그룹마다 호출 |
단일행 처리 함수
- 매 행마다 함수 호출, 리턴된 값을 결과 집합에 반영
숫자 처리 함수
☞ abs()
- 절대값을 반환
select
abs(10), abs(-10)
from
dual;
☞ mod()
- 나머지를 반환
select
mod(10, 3)
from
dual;
응용) 생일 날짜가 짝수인 사원 조회
select
emp_name 사원명,
emp_no 주민번호
from
employee
where
mod(substr(emp_no, 5, 2), 2) = 0;
☞ ceil(), round(), floor(), trunc()
- ceil() : 소수점 기준 올림 처리 (자릿수 옵션 없음)
- round() : 소수점 기준 반올림 처리 (자릿수 옵션 있음)
- floor() : 소수점 기준 버림 처리 (자릿수 옵션 없음)
- trunc() : 소수점 기준 버림 처리 (자릿수 옵션 있음)
select
ceil(234.56) 올림,
round(234.56) 반올림,
floor(234.56) 버림,
trunc(234.56) 버림
from
dual;
만약 소수점 첫번째 자리까지 표시해야 한다면 어떻게 해야할까요?
round와 trunc는 자릿수 옵션이 있기 때문에 자릿수를 지정해주면 되지만, ceil/floor는 자릿수 옵션이 없습니다.
따라서 10을 곱하고 10을 다시 나누어주어야 합니다.
select
-- ceil(234.56) 올림,
-- round(234.56) 반올림,
-- floor(234.56) 버림,
-- trunc(234.56) 버림,
ceil(234.56*10) / 10 소수점첫째자리올림,
round(234.56, 1) 소수점첫째자리반올림,
floor(234.56 * 10) / 10 소수점첫째자리버림,
trunc(234.56, 1) 소수점첫째자리버림
from
dual;
LIST