하고재비

[ORACLE] GREATEST, LEAST, DECODE 본문

Oracle 11g

[ORACLE] GREATEST, LEAST, DECODE

DeadDE 2019. 8. 8. 20:17

GREATEST(expr1, expr2, …), LEAST(expr1, expr2, …)

GREATEST는 매개변수로 들어오는 표현식에서 가장 큰 값을, LEAST는 가장 작은 값을 반환.

 

SELECT 
greatest(add_months(SYSDATE, 5),
           add_months(SYSDATE, 2),
           add_months(SYSDATE, 1),
           SYSDATE,
           add_months(SYSDATE, -1)),
LEAST(add_months(SYSDATE, 5),
           add_months(SYSDATE, 2),
           add_months(SYSDATE, 1),
           SYSDATE,
           add_months(SYSDATE, -1))
FROM DUAL;

 

 

DECODE(expr,search1,result1,search2,result2, ... ,default)

expr과 search1을 비교해 두 값이 같으면 result1을, 같지 않으면 다시 search2와 비교해 값이 같으면 result2를 반환하고, 이런 식으로 계속 비교한 뒤 최종적으로 같은 값이 없으면 default 값을 반환.

 

SELECT
    prod_id,
    channel_id,
    DECODE(channel_id, 3, 'Direct', 9, 'Direct', 5, 'Indirect', 4, 'Indirect', 'Others') decodes
FROM
    sales
WHERE
    ROWNUM < 10;

 

sales 테이블에서 무작위 10개 컬럼 중 channel_id 의 값이 3,9이면 Direct, 5,4 면 Indirect, 그 밖의 값이면 Others 를

decode 컬럼에 반환.

'Oracle 11g' 카테고리의 다른 글

[ORACLE] JOIN  (0) 2019.08.12
[ORACLE] LPAD, RPAD  (0) 2019.08.08
[ORACLE] NULL 관련 함수 NVL, NVL2, NULLIF  (0) 2019.08.08
[ORACLE] UNION  (0) 2019.08.07
[ORACLE] DISTINCT, GROUP BY, HAVING  (0) 2019.08.07
Comments