Skip to content

수학 함수

수학 함수

Machbase에서 제공하는 수학 함수를 한 번에 확인할 수 있습니다.

함수 목록

함수문법반환 타입인자동작
PIPI()DOUBLE인자 없음원주율 π 상수(3.141592653589793)를 반환합니다.
SQRTSQRT(n)DOUBLE숫자 1개n의 제곱근을 반환합니다.
POWERPOWER(base, exponent)DOUBLE숫자 2개baseexponent 거듭제곱을 반환합니다.
POWPOW(base, exponent)DOUBLE숫자 2개POWER와 동일한 동작입니다.
LOGLOG(n)DOUBLE숫자 1개자연로그 ln(n)을 반환합니다.
LOGLOG(base, n)DOUBLE숫자 2개로그의 밑과 진수를 받아 log_base(n) 값을 반환합니다.
LNLN(n)DOUBLE숫자 1개자연로그 ln(n)을 반환합니다.
EXPEXP(n)DOUBLE숫자 1개e^n 값을 반환합니다.
FLOORFLOOR(n)DOUBLE숫자 1개음의 무한대로 내림합니다.
CEILCEIL(n)DOUBLE숫자 1개양의 무한대로 올림합니다.
SINSIN(radian)DOUBLE숫자 1개라디안 단위 입력의 사인 값을 반환합니다.
COSCOS(radian)DOUBLE숫자 1개라디안 단위 입력의 코사인 값을 반환합니다.
TANTAN(radian)DOUBLE숫자 1개라디안 단위 입력의 탄젠트 값을 반환합니다.
MODMOD(dividend, divisor)DOUBLE숫자 2개몫을 0 방향으로 절사한 값으로 나머지를 계산합니다.
RANDRAND()DOUBLE인자 없음[0, 1) 범위의 난수를 반환합니다. 내부 상태를 공유합니다.
RANDRAND(seed)DOUBLE정수 1개같은 시드면 같은 난수가 나옵니다.

함수 목록 바로가기

PI()

SELECT PI() FROM m$sys_users WHERE name = 'SYS';

DOUBLE을 반환하며, 인자를 넣으면 오류가 발생합니다.

SQRT()

SELECT SQRT(9)
FROM m$sys_users WHERE name = 'SYS';

FLOOR()

SELECT FLOOR(3.2), FLOOR(-1.2)
FROM m$sys_users WHERE name = 'SYS';

CEIL()

SELECT CEIL(3.2), CEIL(-1.2)
FROM m$sys_users WHERE name = 'SYS';

SIN()

SELECT SIN(PI()/2), SIN(0)
FROM m$sys_users WHERE name = 'SYS';

COS()

SELECT COS(0), COS(PI())
FROM m$sys_users WHERE name = 'SYS';

TAN()

SELECT TAN(0), TAN(PI()/4)
FROM m$sys_users WHERE name = 'SYS';

LN()

SELECT LN(2), LN(10)
FROM m$sys_users WHERE name = 'SYS';

EXP()

SELECT EXP(2), EXP(-1)
FROM m$sys_users WHERE name = 'SYS';

모든 함수는 숫자형 인자를 요구하며 결과는 DOUBLE입니다.

SELECT SQRT(9), FLOOR(3.2), CEIL(-1.2), SIN(PI()/2), LN(2), EXP(2)
FROM m$sys_users WHERE name = 'SYS';

POWER()

POWERPOW의 동작은 동일합니다.

SELECT POWER(3, 4), POW(2, -1) FROM m$sys_users WHERE name = 'SYS';

POW()

POWER()의 별칭입니다.

SELECT POW(2, 3)
FROM m$sys_users WHERE name = 'SYS';

LOG()

  • LOG(n)LN(n)과 동일합니다.
  • LOG(base, n)log_base(n) 계산입니다.
SELECT LOG(2, 8), LOG(100) FROM m$sys_users WHERE name = 'SYS';

MOD()

음수 입력이 들어오더라도 0 방향으로 절사한 몫을 기준으로 나머지를 계산합니다.

SELECT MOD(-10, 3), MOD(10, -3), MOD(-10, -3)
FROM m$sys_users WHERE name = 'SYS';

RAND()

  • RAND(seed)는 정수 시드만 허용합니다. 같은 시드는 반복 실행 시 동일한 값입니다.
  • RAND()는 내부 상태 기반이라 같은 쿼리 안에서 호출할수록 다른 값이 나옵니다.
  • 반환 범위는 [0, 1) 입니다.
SELECT RAND(), RAND(), RAND(5), RAND(5), RAND() FROM m$sys_users WHERE name = 'SYS';

오류 처리

오류 유형코드발생 조건
인자 타입 오류ERR-02036, ERR-02037숫자 타입이 아닌 값을 넣었거나 PI에 인자를 전달한 경우
실행 오류ERR-02317SQRT의 음수 입력, MOD의 0 나누기, LOG의 잘못된 밑/값, EXP/POWER의 범위 초과 등

입력이 NULL이면 결과도 NULL입니다.

최근 업데이트