하고재비
[ORACLE] GREATEST, LEAST, DECODE 본문
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 |