NULLIF 두 개 값을 비교하여 NULL값 또는 사용되어진 두 개값 중 하나를 리턴해 주는 함수 -> NULLIF(a,b)같은값은 null
coalesce 인수중에서 NULL이 아닌 첫 번째 인수를 반환해 주는 함수
---------------------------- Conditional Expressions where 절에 쓸수있다는게 중요 ! 검색을 더잘할수있슴 조건문, if로직
CASE문 SELECT last_name, job_id, salary, CASE job_id WHEN 'IT_PROG' THEN 1.10*salary WHEN 'ST_CLERK' THEN 1.15*salary WHEN 'SA_REP' THEN 1.20*salary ELSE salary END "REVISED_SALARY" FROM employees;
SELECT last_name, NVL(TO_CHAR(commission_pct), 'Not Applicable')
"COMMISSION" FROM employees
WHERE last_name LIKE 'B%'
ORDER BY last_name;
LAST_NAME COMMISSION
------------------------- ----------------------------------------
Baer Not Applicable
Baida Not Applicable
Banda .1
Bates .15
Bell Not Applicable
Bernstein .25
Bissot Not Applicable
Bloom .2
NVL2함수를 사용하면, 지정한 표현이 NULL인지 여부에 근거하여 쿼리의 반환될 값을 판단할수 있다. 만약 expr1이 NULL이 아니라면, NVL2는 expr2를 반환한다. 만약 expr1인 NULL이라면, NVL2는 expr3을 반환한다.
인수 expr1은 임의의 데이터형을 가질수 있다. 인수 expr2와 expr3은 LONG이외의 임의의 데이터 형을 가질수 있다.
만약 expr2와 expr3의 데이터형이 다르다면,
만약 expr2가 문자 데이터형이라면, 오라클 데이터 베이스는 expr3이 NULL 상수가 아닌 한, 그것들을 비교하기 전에 expr3을 expr2의 데이터형으로 변환한다. expr3이 NULL상수인 경우에는, 데이터형 변환은 필요하지 않는다. 오라클은 expr2의 문자 세트에서 VARCHAR2를 반환한다.
만약 expr2가 수치인 경우에는, 오라클은 더 높은 수치 순위를 판단하여, 다른 인수의 데이터형을 암묵적으로 변환하여, 그 데이터형으로 반환한다.