여러개의 컬럼에서 최대값 최소값 찾기(greatest, least)

여러개의 값(컬럼) 중에서 최대값, 최소값 찾기
with tmp as (
select '123' ename, 6 grd1, 6 grd2, 7 grd3 from dual union all
select '234' ename, 6 grd1, 4 grd2, 5 grd3 from dual union all
select '345' ename, 6 grd1, 6 grd2, 5 grd3 from dual union all
select '456' ename, 8 grd1, 6 grd2, 6 grd3 from dual union all
select '567' ename, 4 grd1, 5 grd2, null grd3 from dual
) select  nvl(grd1, 0) + nvl(grd2, 0) + nvl(grd1, 0) as grd_sum
        , greatest(nvl(grd1, 0), nvl(grd2, 0), nvl(grd3, 0)) grd_max
        , least(nvl(grd1, 0), nvl(grd2, 0), nvl(grd3, 0)) grd_min
    from tmp;

#    GRD_SUM    GRD_MAX    GRD_MIN
1    18    7    6
2    16    6    4
3    18    6    5
4    22    8    6
5    13    5    0

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다