DataBase/Oracle

[ORACLE]최대값, 최소값 구하는 GREATEST, LEAST 함수

DevStory 2021. 6. 4.

GREATEST Function

GREATEST (expr1, expr2, ..., exprN)

GREATEST 함수는 주어진 목록에서 최대값을 구하기 위해 사용됩니다. 

타입 유형은 숫자, 알파벳, 날짜 값이 가능합니다.

 

LEAST Function

LEAST (expr1, expr2, ..., exprN)

LEAST 함수는 주어진 목록에서 최솟값을 구하기 위해 사용됩니다. 

타입 유형은 숫자, 알파벳, 날짜 값이 가능합니다.


GREATEST Function, LEAST Function 특징

  1. 표현식의 데이터 유형이 다른 경우에는 expr1의 데이터 타입으로 변환합니다.
  2. 모든 표현식은 첫 번째 비교가 되기 전에 동일한 데이터 타입으로 변환 후 비교 됩니다.
  3. 표현식에 NULL이 포함되어 있으면 NULL을 반환합니다.
  4. 모든 표현식이 문자일 경우 반환되는 데이터 타입은 VARCHAR2입니다.

Example Data

EX 1) 표현식이 숫자

SELECT GREATEST(5, 20, 10, 5, 0) AS GREATEST_RESULT
     , LEAST(5, 20, 10, 5, 0) AS LEAST_RESULT
FROM dual;

GREATEST 함수는 제일 큰 숫자 20

LEAST 함수는 제일 작은 숫자 0을 반환합니다.


EX 2) 표현식이 문자

SELECT GREATEST('ABC', 'ABCD', 'B', 'C', 'BB') AS GREATEST_RESULT
     , LEAST('ABC', 'ABCD', 'B', 'C', 'BB') AS LEAST_RESULT
FROM dual;

GREATEST 함수는 제일 큰 문자열 C

LEAST 함수는 제일 작은 문자열 ABC를 반환합니다.


EX 3) 표현식이 날짜

SELECT GREATEST(TO_DATE('4-MAR-2021'), TO_DATE('4-MAY-2021'), TO_DATE('4-APR-2021')) AS GREATEST_RESULT
     , LEAST(TO_DATE('4-MAR-2021'), TO_DATE('4-MAY-2021'), TO_DATE('4-APR-2021')) AS LEAST_RESULT
FROM dual;

3월(MAR), 4월(APR), 5월(MAY)에서

5월이 제일 느리기 때문에 GREATEST 함수는 2021-05-04

3월이 제일 빠르기 때문에 LEAST 함수는 2021-03-04를 반환합니다.


EX 4) 표현식에 NULL 존재

SELECT GREATEST('ABC', 'ABCD', 'B', NULL, 'BB') AS GREATEST_RESULT
     , LEAST('ABC', 'ABCD', 'B', NULL, 'BB') AS LEAST_RESULT
FROM dual;

비교할 목록에 NULL이 존재할 경우 공통적으로 NULL을 반환합니다.


EX 5) 데이터 유형이 다름

SELECT GREATEST(10, '5', '9', 7, 15) AS GREATEST_RESULT
     , LEAST(10, '5', '9', 7, 15) AS LEAST_RESULT
FROM dual;

데이터 유형이 다를 경우 첫 번째 표현식이 숫자형인 10이므로 비교할 목록들을 숫자형으로 변환 후 비교합니다.

반응형

댓글