SQL에서 데이터를 다룰 때 NULL에 유의해야 한다.
왜냐하면 NULL 값을 포함하는 연산의 결과가 모두 NULL 값으로 나오기 때문이다.
이같은 특성 때문에 NULL 값을 다루기 위한 함수가 필요하다.
특히 NULL 을 포함하지 않은 결과를 얻고 싶을 때,
NVL 함수(Oracle) 또는 ISNULL 함수(SQL Server)가 많이 사용된다.
NVL(표현식1, 표현식2) / ISNULL(표현식1, 표현식2) |
표현식1의 결과값이 NULL이면 표현식2의 값을 출력한다. 단, 표현식1과 표현식2의 결과 데이터 타입이 같아야 한다. |
NULLIF(표현식1, 표현식2) | 표현식1이 표현식2와 같으면 NULL을, 같지 않으면 표현식 1을 반환한다. 특정 값을 NULL로 대체하는 경우에 유용하게 사용될 수 있다. |
COALESCE(표현식1, 표현식2, ...) | 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다. 모든 표현식이 NULL이라면 NULL을 반환한다. |
※ GROUP BY에서는 NULL값이 있으면 NULL값에 해당하는 행들은 하나의 그룹으로 집계된다.
※ 집계합수의 연산에서는 NULL값에 해당하는 행은 연산에서 제외된다.
(예: 평균값을 계산하는 AVG함수에서는 분자에도 분모에도 아예 포함되지 않고 제외되서 계산된다.)
https://bornsoon.tistory.com/63
[SQL] SQL의 NULL
SELECT last_name, salary, commission_pct FROM employees WHERE commission_pct = NULL; --> 결과값 아무것도 안나옴 ---------------------------------------------------------------------------------------------SELECT last_name, salary, co
bornsoon.tistory.com
728x90
'SQL' 카테고리의 다른 글
[SQL] WITH 문 (0) | 2025.03.27 |
---|---|
[SQL] ORDER BY + CASE WHEN (1) | 2024.11.03 |
[SQL] 내장함수 (단일행 함수와 다중행 함수) (0) | 2024.11.03 |
[SQL] TRUNCATE와 DELETE의 차이점 (1) | 2024.10.02 |
[SQL] (오라클 기준) GROUP BY 확장함수(ROLLUP, CUBE) (0) | 2024.10.01 |