반응형
oracle 퍼센트 구하기 함수
요구사항
- 1보다 작은 수, 소수점이 변수로 입력되지 않음
- 퍼센트 계산 시 소수점 2자리까지 출력
- 결과 값이 '%'문자 포함하여 리턴 처리
oracle 퍼센트 구하기 함수
- 실행예제 : SELECT FN_PERCENT(11,121) FROM DUAL;
create or replace NONEDITIONABLE FUNCTION FN_PERCENT(
v_num1 NUMBER -- 분자
,v_num2 NUMBER -- 분모
) RETURN VARCHAR2 IS -- VARCHAR2 리턴값
v_result VARCHAR2(20); -- 결과 저장 변수
BEGIN
IF v_num1 < 1 OR v_num2 < 1 THEN
v_result := '0%';
ELSE
v_result := ROUND( (ROUND(FLOOR(v_num1) / FLOOR(v_num2), 5) * 100), 2) || '%';
END IF;
RETURN v_result;
END FN_PERCENT;
함수 설명
- FN_PERCENT 함수는 두 개의 숫자 (v_num1, v_num2)를 입력받아 백분율을 계산하고, 지정된 형식의 문자열로 반환하는 함수입니다.
1. 입력
- v_num1 : 백분율 계산의 분자 (첫 번째 숫자)
- v_num2 : 백분율 계산의 분모 (두 번째 숫자)
2. 반환
- 백분율을 나타내는 문자열
3. v_result := ROUND( (ROUND(FLOOR(v_num1) / FLOOR(v_num2), 5) * 100), 2) || '%';
- FLOOR(v_num1): v_num1의 소수점 이하를 버림 (정수 부분만 취함)
- FLOOR(v_num2): v_num2의 소수점 이하를 버림 (정수 부분만 취함)
- FLOOR(v_num1) / FLOOR(v_num2): 정수 나눗셈 수행
- ROUND(..., 5): 나눗셈 결과를 소수점 5번째 자리까지 반올림
- ... * 100: 백분율 계산을 위해 100을 곱함
- ROUND(..., 2): 백분율 결과를 소수점 2번째 자리까지 반올림
- || '%': '%' 문자를 결과 문자열에 연결
FLOOR : 주어진 숫자보다 작거나 같은 가장 큰 정수를 반환합니다 (소수점 이하 버림).
2025.02.08 - [db/oracle] - oracle floor 함수
oracle floor 함수
오라클 FLOOR 함수오라클 FLOOR 함수는 주어진 숫자보다 작거나 같은 가장 큰 정수를 반환하는 함수입니다. 즉, 입력된 숫자의 소수점 이하 부분을 버리고 정수 부분만 취하는 함수라고 생각하면
st-d.tistory.com
ROUND : 숫자를 지정된 소수점 자릿수로 반올림합니다.
2025.02.09 - [db/oracle] - oracle round 함수
oracle round 함수
오라클 ROUND 함수오라클 ROUND 함수는 숫자를 지정된 자릿수로 반올림하는 데 사용되는 함수입니다.기본 사용법ROUND(number, [decimals])※ number : 반올림할 숫자 ※ decimals : (선택 사항) 반올림할 소
st-d.tistory.com
반응형
'db > oracle' 카테고리의 다른 글
oracle TO_TIMESTAMP 유연성과 안정성 (0) | 2025.02.10 |
---|---|
oracle 문자열 테이블 리스트 만들기 (0) | 2025.02.10 |
oracle round 함수 (0) | 2025.02.09 |
oracle floor 함수 (0) | 2025.02.08 |
nvl 함수와 nvl2 함수의 차이점 (0) | 2025.01.23 |