그룹함수인 MIN , MAX 가 아닌, 하나의 ROW나 여러가지 값중에 최대와 최소 값을 알고 싶을때
GREATEST 와 LEAST 로 구할 수 있다.
MIN 과 MAX는 다중 ROW에서 그룹을지어서 하나의 ROW로 표현할때 최대값과 최소값을 가져오지만
GREATEST와 LEAST는 하나의 ROW나 여러개의 값들중에 최대,최소값을 가져올수있다.
GREATEST(n1, n2, n3, n4...)
SELECT GREATEST(1,2,3,4,5) AS MAX FROM DUAL
--5
이와같이 사용가능하다.
LEAST(n1, n2, n3, n4...)
SELECT LEAST(1,2,3,4,5) AS MIN FROM DUAL
--1
매우 간단하다.
주의할점으로 숫자이외의 값이 들어가면 오류가 발생한다.
SELECT LEAST(1,2,3,4,a) AS MIN FROM DUAL
ORA-00904: "A": 부적합한 식별자
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
1행, 22열에서 오류 발생
그리고 null 이 들어가면 두함수모두 최대,최소에 상관없이 null을 반환한다.
SELECT LEAST(1,2,3,4,null) AS MIN FROM DUAL
--null
SELECT GREATEST(1,2,3,4,null) AS MAX FROM DUAL
--null
'DB\SQL' 카테고리의 다른 글
[Oracle] 오라클 몫,나머지 구하기 (/, MOD) (0) | 2019.11.21 |
---|---|
[Oracle] 오라클 올림,내림,반올림,버림 함수 (0) | 2019.11.20 |
[Oracle] 오라클 다중 LIKE 문 (REGEXP_LIKE) (1) | 2019.11.11 |
[Oracle] 오라클 처음,마지막 조회값만 구하기 (0) | 2019.11.04 |
[Oracle] dual 다중조회 (connect by level) (0) | 2019.10.19 |