2022. 3. 8. 00:09ㆍSQL
행의 컬럼에 값이 없는 경우를 NULL을 가진다고 한다.
NULL은 데이터의 값이 알려져 있지 않거나 의미가 없는 경우에 사용한다.
⇒ NULL = 부재 or 모르는 값
# 정렬에서 무한대의 의미를 가진다. (ORACLE)
⇒ 정렬 시 무한대로 간주하는 의미(?)
# 정렬에서 최소의 값이라는 의미를 가진다. (SQL 서버)
NULL과의 산술연산
⇒ NULL과의 산술연산 결과는 모두 NULL이다.
NULL과의 비교연산
⇒ 데이터 값이 NULL인지 여부는 IS NULL, IS NOT NULL을 통해 비교 가능하다.
# 조건식 논리에는 TRUE, FALSE, UNKNOWN이 있다.
# UNKNOWN 논리는 FALSE 결과와 동일한 결과가 출력된다.
⇒ WHERE 조건에 UNKNOWN 결과인 경우 ORACLE은 조건이 불명확하여 모든 행들이 조건에 맞지 않다고 판단한다. 따라서 조건에 맞는 행이 없어 공집합(0 Row)를 반환한다.
NULL과의 논리연산
NOT UNKNOWN ⇒ UNKNOWN
TRUE AND UNKNOWN ⇒ UNKNOWN
FALSE AND UNKNOWN ⇒ FALSE
UNKNOWN AND UNKNOWN ⇒ UNKNOWN
TRUE OR UNKNOWN ⇒ TRUE
FALSE OR UNKNOWN ⇒ UNKNOWN
UNKNOWN OR UNKNOWN ⇒ UNKNOWN
NULL과 관련된 함수
NVL(<값1>, <값2>) : <값1>이 NULL이면 <값2>, 아니면 <값1> 반환
NVL2(<값1>, <값2>, <값3>) : <값1>이 NULL이면 <값3>, 아니면 <값2> 반환
# 값 자리에 숫자, 날짜, 문자열, 컬럼명이 들어갈 수 있다.
NULLIF(<값1>,<값2>) : <값1>이 NULL이면 <값2>, 아니면 <값1> 반환
COALESCE(<값1>, <값2>, ....) : 값 중에서 NULL이 아닌 첫 번째 값을 반환
'SQL' 카테고리의 다른 글
집계함수 (0) | 2022.03.08 |
---|---|
ORDER BY (0) | 2022.03.08 |
함수 Function (0) | 2022.03.07 |
가상 컬럼 Psudocolumn (0) | 2022.03.07 |
WHERE문 (0) | 2022.03.07 |