http://www.adp-gmbh.ch/ora/sql/greatest_least.html
min, max가 검색조건에 맞는 값 중에 가장 작은 것과 가장 큰 것을 뽑는 함수였다면 greatest와 least는 inline 형태로 사용하여 가장 큰 값과 제일 작은 값을 뽑기 위한 함수이다.
select least(44, 22, 49, 8, 102) from dual;
> 8
select greatest(44, 22, 49, 8, 102) from dual;
> 102
greatest (expr-1)
greatest (expr-1, expr_2)
greatest (expr-1, expr_2, ..., expr-n)
least (expr-1)
least (expr-1, expr_2)
least (expr-1, expr_2, ..., expr-n)
추가로 null이 포함된 경우에는 greatest, least모두 null을 반환하는 점을 참고하자.
GREATEST(-1,0,1,2,NULL)
———————–
NULL
LEAST(-1,0,1,2,NULL)
———————–
NULL
뿐만 아니라 숫자 이외의 데이터 타입이 포함된 경우 다음과 같은 에러가 발생한다.
select least(-1,0,1,2,'a') from dual
———————–
ERROR at line 1:
ORA-01722: invalid number