[Oracle] 오라클 GREATEST, LEAST 함수 사용법 및 주의사항

오라클에서 GREATEST 함수는 최대값, LEAST 함수는 최소값을 반환하는 함수이다. MAX, MIN 함수와 차이점은 서로다른 컬럼의 값을 비교한다는 것이다.

 

같은 행(Row)에서 서로다른 컬럼의 값을 비교하여 최댓값 또는 최솟값을 반환한다. 함수의 인자 개수는 무한대 수준으로 입력이 가능하다.

 

GREATEST("값1", "값2", "값3", "값4", "값5", "값6", ...) 인자값 중 최댓값을 반환

LEAST("값1", "값2", "값3", "값4", "값5", "값6", ...) 인자값 중 최솟값을 반환

 

최댓값을 반환 (GREATEST)

SELECT GREATEST(100, 200, 300, 400, 500)
  FROM dual
  
--결과: 500

 

최솟값을 반환 (LEAST)

SELECT LEAST(100, 200, 300, 400, 500)
  FROM dual
  
--결과: 100

 

문자열도 사용가능

SELECT GREATEST('AAA', 'BBB', 'CCC', 'DDD')
  FROM dual
  
--결과: DDD

 

날짜도 사용가능

SELECT SYSDATE
     , GREATEST(SYSDATE, SYSDATE + 1, SYSDATE + 2)
  FROM dual
  
--결과: SYSDATE + 2

 

 

주의사항

 

인자값 중 NULL이 있으면 무조건 NULL이 반환된다. NULL이 존재하면 치환을 해 줘야한다.

 

SELECT GREATEST(100, 200, 300, 400, NULL)
  FROM dual
  
--결과: NULL

 

다른 유형의 인자값이 섞여있을 경우 오류가 발생한다. 

숫자와 문자형 숫자가 섞여 있는 경우는 오류가 발생하지 않는다.  GREATEST(100, 200, '123', '456')

 

SELECT GREATEST(100, 200, 300, 400, 'AAA')
  FROM dual
  
--결과 : ORA-01722 invalid number

 

 

사용 예제

 

 

 

 

 

 

 

 

 

 

댓글

Designed by JB FACTORY