moduloOrZero

moduloOrZero (안전한 나머지 연산)

moduloOrZero 함수는 MOD와 동일한 나머지 연산을 수행하지만, 0으로 나누거나 Long.MIN_VALUE를 -1로 나눌 때 0을 반환해요. 입력 숫자 타입을 보존하는 다형성(polymorphic) 함수입니다.

출처: 문서

본문

moduloOrZero(col1, col2) 형식으로 사용해요.

인자 타입 설명
col1 INT, LONG, FLOAT, DOUBLE, BIG_DECIMAL 피제수
col2 INT, LONG, FLOAT, DOUBLE, BIG_DECIMAL 제수

입력 타입과 동일한 숫자 타입을 반환합니다(입력 타입이 서로 다르면 더 넓은 타입).

사용 예시

SELECT moduloOrZero(10, 3) AS value
FROM myTable
value
1
SELECT moduloOrZero(10, 0) AS value
FROM myTable
value
0
SELECT moduloOrZero(10L, 3L) AS long_modulo, moduloOrZero(10.5F, 3.0F) AS float_modulo, moduloOrZero(10.5, 3.0) AS double_modulo
FROM myTable

각각 LONG, FLOAT, DOUBLE을 반환합니다(입력 타입 보존).

더 알아보기 (Learn more)