koos808

ORACLE SQL GREATEST(최대값), LEAST(최소값) 본문

SQL(MySQL˙Oracle˙SqlDbx˙Orange)

ORACLE SQL GREATEST(최대값), LEAST(최소값)

koos808 2023. 9. 12. 17:09
728x90
반응형

※ 간단 요약

- 오라클에서 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

 

※ 주의사항 1
인자값 중 NULL이 있으면 무조건 NULL이 반환된다. 

따라서 NULL이 존재하면 NULL값을 다른 값으로 변경해야 한다.

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

 

※ 주의사항 2

다른 유형의 인자값이 섞여있을 경우 오류가 발생한다. 
숫자와 문자형 숫자가 섞여 있는 경우는 오류가 발생하지 않는다.

>> GREATEST(100, 200, '123', '456')

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

 

 

 

 

---------------------------------------------------------------------------------------------------------------------------

728x90
반응형
Comments