조건문
조건문이란?
if 조건 평가 then
참값1;
else
기본값1;
end if;
if 조건 평가 then
참값1;
else if 조건 평가 then
참값2;
end if; 조건평가 then
참값3;
else
기본값1;
end if;
조건부 표현식(함수)
DECODE()
- DECODE(기준값, 비교값, 참값)
- DECODE() 함수는 기준값을 설정 후 ‘=’(같다)만 비교함
Ex. IT_PROG와 ST_CLERK 일 경우 연봉 인상을 하고 나머지는 그대로
SELECT last_name, job_id, salary,
DECODE(job_id,'IT_PROG',salary*1.10,
'ST_CLERK',salary*1.15,
salary)
FROM employees;
DECODE()
는 참값과 거짓값을 반환할 때 문자형인지 숫자형인지 형 타입에 영향을 받는다. 예를 들어 참값을 NULL, 거짓값을 NUMBER TYPE으로 썼다면 NUMBER TYPE이 CHAR TYPE(NULL이 CHAR형이기 때문)으로 자동 형변환되어 값을 출력해준다. 이를 유의하자(문제 135번 참고)
CASE 표현식
- 현장에서는 주로 CASE를 주로 사용함
- CASE 표현식은 ‘= (같다)’ 이외 다른 연산자 사용 가능
- CASE 표현식은 다음과 같이 표현함
표현 1. 기준값을 설정
CASE 기준값
WHEN 비교값 THEN 참값
WHEN 비교값 THEN 참값
ELSE 나머지값
END
표현 2. 기준값을 WHEN 절에
CASE
WHEN 기준값 비교연산자 비교값 THEN 참값
WHEN 기준값 비교연산자 비교값 THEN 참값
ELSE 나머지값
END
- 사용 예시
Ex. IT_PROG와 ST_CLERK 일 경우 연봉 인상을 하고 나머지는 그대로
SELECT last_name, job_id, salary,
CASE job_id
WHEN 'IT_PROG' THEN salary*1.10
WHEN 'ST_CLERK' THEN salary*1.15
ELSE salary
END
FROM employees;
SELECT last_name, job_id, salary,
CASE
WHEN salary < 5000 THEN 'low'
WHEN salary < 10000 THEN 'medium'
WHEN salary < 20000 THEN 'good'
ELSE
'excellent'
END
FROM employees;
단일행 함수 : 문자함수, 숫자함수, 날짜함수, 형변환 함수, null 관련된 함수, 조건표현식 함수.
그룹함수 : 여러행을 한꺼번에 처리하는 함수