본문 바로가기

nvl

[SQL] 색다른 쓰임, NVL2! 이전글에서 NVL함수에 대해서 살펴봤는데요. NVL함수에 이은 두번째 버전이 있습니다. 그것은 NVL2죠! 다를건 없습니다. 넣는 파라미터 값이 하나더 추가 되었는데요. 문법은 다음과 같습니다. NVL2(컬럼명, 데이터1, 데이터2) 어떻게 쓰냐면요 해당 컬럼에 데이터가 있으면 데이터1을 사용하구요, 반면에 데이터가 없으면 데이터2를 사용합니다. 조금의 차이가 있나요? 있습니다. NVL2는 NVL과는 달리 데이터가 있는 경우에도 명시된 데이터로 바꾸어 버리죠. 만일 이렇게 쓴다면 NVL과 똑같습니다. salary 가 NULL이고 그 컬럼에 대해서 NVL(salary, 0) - 해당 salary 값이 null이면 0으로 아니면 명시된 salary로 NVL2(salary, salary, 0) - 해당 sal.. 더보기
[SQL] NULL 상태도 처리하자, NVL 함수! 우리가 일반 연산자나 그룹 함수(sum, avg 등)를 쓰다보면 각 컬럼의 값이 null인 행이 존재하는데요, 이때 그룹 함수들은 이 null인 행을 연산처리를 안하거나 무시를 합니다. 가령 예를 들면 null은 값이 아닌 상태이기 때문에 아무리 +,-,/,* 등을 해줘도 결과같은 null로 테이블을 조회 했을때 아무것도 표시되지 않습니다. 한번 보실까요? 다음은 월급과 성과급(커미션)을 곱해서 연봉을 계산해볼건데요. 여기서 유의하셔야 할건 커미션을 받는 사람과 그렇지 않는 사람이 있다는 겁니다. SQL> SELECT department_id, first_name, salary, commission_pct AS "CM", salary*12+salary*commission_pct*12 AS "AN_SAL".. 더보기