평범한 연구소

[오라클 SQL] NULL 관련 함수 본문

DB|SQL

[오라클 SQL] NULL 관련 함수

soyeonisgood 2022. 8. 14. 19:29

NULL 관련 함수 

  • 열에 값이 없으면, null이거나 null을 포함한다고 함
  • 실제 값을 알 수 없거나 값이 의미가 없는 경우 사용
  • 길이가 0인 문자 = NULL 처리
  • NULL + 1 = NULL
NULL 관련 함수 내용
NVL(expr1, expr2) expr1의 값이 null이 아니면 expr1, null이면 expr2 반환
NVL(expr1, expr2, expr3) expr1의 값이 null이 아니면 expr2, null이면 expr3 반환
NULLIF(expr1, expr2) expr1과 expr2를 비교하여 두 값이 동일하면 null, 동일하지 않으면 expr1 반환. (expr1값은 NULL 올 수 없음)
COALESCE(expr [,expr]...) null이 아닌 첫번째 expr값 반환

 

NVL(expr1, expr2)

  • expr1이 null이면 expr2 반환.
SELECT name, NVL(tel,'전화없음') tel FROM emp; -- null은 전화없음으로 출력
		  
SELECT name, NVL(tel,'전화없음') tel FROM emp WHERE tel IS NULL;

SELECT 50 + NULL FROM dual; -- null
SELECT 50 + NVL(NULL,0) FROM dual; -- 50
	-- NULL이 들어간 연산은 결과값도 NULL이다.
    
SELECT empNo, name, sal, bonus, sal+bonus pay FROM userEx; 
--  bonus가 null이면 연산도 null. 아래처럼 NVL()로 nul을 0으로 변환하여 연산.
SELECT empNo, name, sal, bonus, sal+NVL(bonus,0) pay FROM userEx;

 

NVL2(expr1, expr2, expr3)

  • expr1이 null이면 expr3 반환.
  • null이 아니면 expr2 반환
SELECT name, tel, NVL2(tel,'O','X') 유무 FROM emp;

SELECT name, NVL2(tel,tel,'없음') tel FROM emp;

 

NULLIF(expr1, expr2)

  • 같으면 expr1 반환
  • 다르면 expr2 반환
SELECT NULLIF(1, 1), NULLIF(10,3) FROM dual; -- null  10

 

 

COALESCE(expr [, expr] ...)

  • null이 아닌 첫번째 값 반환
SELECT COALESCE(null, 5, 10) FROM dual; -- 5

 

'DB|SQL' 카테고리의 다른 글

[오라클 SQL] 데이터 조작 언어 (DML)  (0) 2022.08.21
[오라클 SQL] 데이터 정의 언어 (DDL)  (0) 2022.08.18
[오라클 SQL] 날짜 함수  (0) 2022.08.14
[오라클 SQL] 문자 함수  (0) 2022.08.10
[오라클 SQL] 숫자 함수  (0) 2022.08.10