본문 바로가기
프로그래밍/oracle

[oracle] 최대값/최소값 행 가져오는 방법 비교 사용법 GREATEST/LEAST vs MAX/MIN sql 차이점

by 캘리포니아전자두뇌 2023. 3. 2.
728x90
300x250

 

MAX/MIN 

MIN/MAX는 한 컬럼안에서만 비교하는 반면 GREATEST/LEAST는 서로 다른 컬럼과 비교 가능

WITH EXP_MXN AS (
    SELECT 111 AS test_col
      FROM DUAL
     UNION ALL
    SELECT 222 AS test_col
      FROM DUAL
)
SELECT MAX(test_col)
     , MIN(test_col)
  FROM EXP_MXN;

// 결과값 222 111

 

GREATEST / LEAST 

-▶숫자 비교는 물론 (숫자형)

SELECT GREATEST(100, 200, 300, 400) AS grt --인자값 중 최대값 반환
     , LEAST(100, 200, 300, 400)    AS let --인자값 중 최소값 반환
  FROM DUAL;

// 결과값 400 100

 

-▶문자열 비교도 가능 (문자형)

SELECT GREATEST('aaa', 'AAA', 'bbb', 'BBB') AS grt
     , LEAST('aaa', 'AAA', 'bbb', 'BBB')    AS let
  FROM DUAL;

// 결과값 bbb  AAA

 

-▶날짜 비교도 가능

SELECT GREATEST(SYSDATE, SYSDATE+1) AS grt
     , LEAST(SYSDATE, SYSDATE+1)    AS let
  FROM DUAL;

 

※ 주의) null값이 들어가면 안됨 -▶에러는 안나되 NULL값 반환

SELECT GREATEST(NULL, 'AAA', 'bbb', 'BBB') AS grt
     , LEAST('aaa', 'AAA', 'bbb', 'BBB')   AS let
  FROM DUAL;

 

※ 주의) 비교하는 타입들이 다르면 안됨

SELECT GREATEST('AAA', 555, 'BBB') AS grt
     , LEAST(333, 555, 'BBB')      AS let
  FROM DUAL;

// SQL Error [1722] [42000]: ORA-01722: 수치가 부적합합니다

728x90
반응형

댓글