일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Mybatis 오류
- 자바스크립트
- properties 변수
- 스프링 파라미터 추출
- DDL TRUNCATE
- 오라클 CREATE
- DDL DROP
- Spring MVC Interceptor
- 스프링 인터셉터
- Spring MVC5 기본 세팅
- 오라클 DROP
- Spring 커맨드 객체
- Dependency Injection
- annotation
- Spring
- Servlet cookie
- collection framework
- 코드로 배우는 스프링 웹 프로젝트
- Spring 객체로 주입받기
- Spring Cookie
- JSR - 380
- properties 파일
- Spring message
- 자바오류
- JSR - 303
- 오라클 TRUNCATE
- 자바
- properties 파일 주입
- 자바 List
- ddl alter
- Today
- Total
개발이좋아
NVL과 NVL2 본문
만약 연산을 하려는 데이터가 NULL일 경우 산술 연산자나 비교 연산자는 동작을 하지 않는다.
하지만 특정 열 값이 NULL일 때에도 연산을 해주어야 하는 경우도 있는데 이때 사용하는 것이 NULL 값을 다른 값으로 대체시켜주는 NVL과 NVL2 함수이다.
NVL
NVL 함수는 입력 데이터의 값이 NULL이라면 그 데이터의 값을 다른 값으로 대체하고 NULL이 아니라면 그 값을 그대로 반환하는 함수이다.
NVL([NULL인지 여부를 검사할 데이터 또는 열(필수)], [앞의 데이터가 NULL일 경우 반환할 데이터(필수)])
첫 번째 입력 값으로는 NULL 여부를 검사할 데이터를 두 번째 입력 값으로는 NULL일 경우 대체될 데이터를 입력한다.
위 사진의 예제는 추가 수당을 나타내는 COMM열의 값이 NULL일 경우 0으로 바꾸는 함수이다.
결과는 아래와 같다.
열을 보면 SAL+COMM 열은 NULL값이 있을 경우 연산이 안되지만 NVL이 붙은 열은 NULL값이 0으로 대체되기 때문에 연산이 제대로 수행되는 것을 확인할 수 있다.
NVL2
NVL2 함수는 NVL과 비슷하지만 데이터가 NULL이 아닐 경우 반환할 데이터를 추가로 지정할 수 있다.
NVL2([NULL인지 여부를 검사할 데이터 또는 열(필수)],
[앞 데이터가 NULL이 아닐 경우 반환할 데이터 또는 계산식(필수)],
[앞 데이터가 NULL일 경우 반환할 데이터 또는 계산식(필수)] -NVL 기본 형식
NVL2의 첫 번째 파라미터로는 NULL 여부를 검사할 데이터, 두 번째 파라미터로는 NULL일 아닐 경우 반환될 데이터,
세 번째 파라미터는 NULL일 경우 반환될 데이터를 지정해준다.
위 사진의 예제는 COMM이 NULL이 아닐 경우에는 'O'를 NULL일 경우에는 'X'를 반환하는 NVL2와,
COMM이 NULL 아닐 경우에는 연봉에 추가 수당을 더 한 데이터를 NULL일 경우 그냥 1년치 연봉만을 반환한다.
결과는 아래와 같다.
NVL2(COMM, 'O', 'X') 열을 보면 COMM의 값이 존재하는 행은 'O'를 COMM의 값이 NULL인 행은 'X'가 출력된다.
본 포스팅은 필자가 공부한 내용을 정리한 것으로 오류가 존재할 수 있습니다.
참고 : Do it! 오라클로 배우는 데이터베이스 입문
![]() |
|
'DataBase' 카테고리의 다른 글
[Oracle] ORA-02291 (0) | 2020.02.26 |
---|---|
[Oracle] 테이블의 데이터를 수정하는 UPDATE문 (0) | 2020.02.26 |
[Oracle] 형 변환 함수 (type conversion function) (0) | 2020.02.23 |
[Oracle] 자체 조인 (self join) (0) | 2020.02.22 |
[Oracle] 날짜 데이터 처리 함수(DATE TYPE FUNCTION) (0) | 2020.02.21 |