oracle SQL - 조건 표현식 (DECODE, CASE)
오라클은 조건 처리를 구현하기 위해 DECODE 함수와 CASE 표현식을 제공한다. DECOD는 오라클 전공 함수이며, CASE 표현식은 ANSI SQL이다. DECODE 함수 프로그래밍 언어에서 사용되는 if-then-else 구문과 비슷한 기능을 한다. 구문은 다음과 같다. DECODE(col|표현식, search1, result1, search2, result2,..., default); 첫 번째 인수에 해당되는 표현식을 serach 값과 비교한 후 동일하다면 result 값을 반환한다. 마지막 default는 모든 조건에 맞지 않는 데이터에 적용할 기본값을 주기 위해 사용한다. 다음 보기를 보면 이해하기 쉬울 것이다. select emp_name, position, salary, DECODE(po..
2022. 12. 7.
oracle SQL - 일반함수 (NVL, NVL2, NULLIF, COALESCE)
일반함수? - 표현식에 NULL 값을 비롯한 모든 데이터유형의 데이터를 사용할 수 있는 함수 NVL(표현식 1, 표현식 2) 표현식 1에는 NULL을 포함하는 열 이름 또는 표현식이온다. 표현식 2에는 NULL값을 변환할 대상 값이 온다. 사원의 연간 총 급여를 구할 때 연간 급여 + 커미션을 곱한 값을 구할 때 다음과 같이 작성하면 select emp_name, salary, comm, (salary*12) + (salary * 12 * comm) ANN_SAL from y_emp; 이처럼 잘못된 결과를 반환한다. NVL함수를 사용하면 해결할 수 있다. select emp_name, salary, comm, (salary * 12) + (salary * 12 * NVL(comm, 0)) ANN_SAL ..
2022. 12. 7.