"LNNVL 함수"의 두 판 사이의 차이
DB CAFE
(→LNNVL) |
|||
(같은 사용자의 중간 판 4개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | “ logical not null value “ | + | == LNNVL == |
+ | {{틀:고지 상자 | ||
+ | |내용=“ logical not null value “ | ||
− | + | * LNNVL 함수는 해당 컬럼에 NULL이 존재할 경우 NULL 처리와 조건문을 한 번에 연산하기 위해서 사용 | |
− | LNNVL 함수는 아래의 상황일 때 조건이 TRUE이다. | + | * LNNVL 함수는 아래의 상황일 때 조건이 TRUE이다. |
+ | ** 컬럼이 NULL인 경우 = TRUE | ||
+ | ** 함수 내부 조건이 FALSE인 경우 = TRUE | ||
− | + | * 오라클의 NULL 처리를 정확히 이해 하기 | |
− | + | }} | |
− | + | ||
− | 오라클의 NULL 처리를 정확히 | + | * 오라클 NULL 사용시 주의사항 정리 |
− | |||
− | |||
사용 예시 - 1 | 사용 예시 - 1 | ||
22번째 줄: | 24번째 줄: | ||
</source> | </source> | ||
− | + | <source lang=sql> | |
LNNVL(comm = 0) | LNNVL(comm = 0) | ||
- comm is null | - comm is null | ||
- comm != 0 | - comm != 0 | ||
+ | </source> | ||
− | 위의 2가지 조건을 한 번에 조건문을 선언한 것과 동일하다. | + | * 위의 2가지 조건을 한 번에 조건문을 선언한 것과 동일하다. |
+ | |||
<source lang=sql> | <source lang=sql> | ||
SELECT ename | SELECT ename | ||
38번째 줄: | 42번째 줄: | ||
− | LNNVL(comm = 0)과 동일한 결과가 조회되는 것을 | + | * LNNVL(comm = 0)과 동일한 결과가 조회되는 것을 확인 |
− | + | * LNNVL 함수를 사용하는 이유는 해당 컬럼에 NULL이 존재할 경우 해당 NULL 데이터도 함께 조회되도록 하기 위해서 | |
− | LNNVL 함수를 사용하는 이유는 해당 컬럼에 NULL이 존재할 경우 해당 NULL 데이터도 함께 조회되도록 하기 | + | * LNNVL 함수 내부의 조건은 조회하려고 하는 조건의 반대 조건으로 부여하는 것을 기억해야 한다. |
− | |||
− | LNNVL 함수 내부의 조건은 조회하려고 하는 조건의 반대 조건으로 부여하는 것을 기억해야 한다. | ||
사용 예시 - 2 | 사용 예시 - 2 | ||
55번째 줄: | 57번째 줄: | ||
− | LNNVL(comm > 300) | + | ;LNNVL(comm > 300) |
− | - 커미션(comm)이 300 이하의 직원을 조회하는 쿼리이다. | + | :- 커미션(comm)이 300 이하의 직원을 조회하는 쿼리이다. |
아래의 조건과 동일한 결과이다. | 아래의 조건과 동일한 결과이다. | ||
− | - comm is null OR comm <= 300 | + | :- comm is null OR comm <= 300 |
− | - NVL(comm, 0) <= 300 | + | :- NVL(comm, 0) <= 300 |
+ | |||
<source lang=sql> | <source lang=sql> | ||
SELECT ename | SELECT ename | ||
71번째 줄: | 74번째 줄: | ||
− | LNNVL(comm > 300) 조건과 NVL(comm, 0) <= 300 조건이 항상 동일한 결과라고 생각하면 안 된다. 위의 경우는 NULL이 300 이하라고 판단한 경우만 동일한 결과가 출력된다. | + | * LNNVL(comm > 300) 조건과 NVL(comm, 0) <= 300 조건이 항상 동일한 결과라고 생각하면 안 된다. |
− | + | * 위의 경우는 NULL이 300 이하라고 판단한 경우만 동일한 결과가 출력된다. | |
− | 만약 comm이 300 이상인 직원과 comm이 NULL인 직원을 동시에 조회한다면 LNNVL(comm < 300) 이렇게 조건을 부여할 수 있으며, NVL(comm, 0) >= 300은 잘못된 결과를 출력한다. | + | * 만약 comm이 300 이상인 직원과 comm이 NULL인 직원을 동시에 조회한다면 LNNVL(comm < 300) 이렇게 조건을 부여할 수 있으며, NVL(comm, 0) >= 300은 잘못된 결과를 출력한다. |
− | [[category: | + | [[category:oracle]] |
2023년 7월 6일 (목) 09:06 기준 최신판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
LNNVL[편집]
android “ logical not null value “
- LNNVL 함수는 해당 컬럼에 NULL이 존재할 경우 NULL 처리와 조건문을 한 번에 연산하기 위해서 사용
- LNNVL 함수는 아래의 상황일 때 조건이 TRUE이다.
- 컬럼이 NULL인 경우 = TRUE
- 함수 내부 조건이 FALSE인 경우 = TRUE
- 오라클의 NULL 처리를 정확히 이해 하기
- 오라클 NULL 사용시 주의사항 정리
사용 예시 - 1
SELECT ename
, job
, comm
FROM emp
WHERE deptno = 30
AND LNNVL(comm = 0)
LNNVL(comm = 0)
- comm is null
- comm != 0
- 위의 2가지 조건을 한 번에 조건문을 선언한 것과 동일하다.
SELECT ename
, job
, comm
FROM emp
WHERE deptno = 30
AND (comm is null OR comm != 0)
- LNNVL(comm = 0)과 동일한 결과가 조회되는 것을 확인
- LNNVL 함수를 사용하는 이유는 해당 컬럼에 NULL이 존재할 경우 해당 NULL 데이터도 함께 조회되도록 하기 위해서
- LNNVL 함수 내부의 조건은 조회하려고 하는 조건의 반대 조건으로 부여하는 것을 기억해야 한다.
사용 예시 - 2
SELECT ename
, job
, comm
FROM emp
WHERE deptno = 30
AND LNNVL(comm > 300)
- LNNVL(comm > 300)
- - 커미션(comm)이 300 이하의 직원을 조회하는 쿼리이다.
아래의 조건과 동일한 결과이다.
- - comm is null OR comm <= 300
- - NVL(comm, 0) <= 300
SELECT ename
, job
, comm
FROM emp
WHERE deptno = 30
AND NVL(comm, 0) <= 300
- LNNVL(comm > 300) 조건과 NVL(comm, 0) <= 300 조건이 항상 동일한 결과라고 생각하면 안 된다.
- 위의 경우는 NULL이 300 이하라고 판단한 경우만 동일한 결과가 출력된다.
* 만약 comm이 300 이상인 직원과 comm이 NULL인 직원을 동시에 조회한다면 LNNVL(comm < 300) 이렇게 조건을 부여할 수 있으며, NVL(comm, 0) >= 300은 잘못된 결과를 출력한다.