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을 반환합니다(입력 타입 보존).