Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- group by
- 명령어
- Python
- docker
- IntelliJ
- mssql
- c#특징
- API
- git
- 4요소
- Javascript
- SQL
- DBMS
- 자바
- rebase vs merge
- spring
- mysql
- PostgreSQL
- 트랜잭션
- 오블완
- JPA
- 각데이터베이스별
- 티스토리챌린지
- analytics4
- 차이점
- network
- 뷰테이블
- java
- oracle
Archives
- Today
- Total
hanker
SQL - SQL 각 데이터베이스 별 NULL 처리 방법 (MySQL / MSSQL / ORACLE / PostgreSQL) 본문
DATABASE/SQL
SQL - SQL 각 데이터베이스 별 NULL 처리 방법 (MySQL / MSSQL / ORACLE / PostgreSQL)
hanker 2025. 1. 1. 00:00반응형
데이터베이스에서 NULL은 "값이 없다"는 상태를 나타낸다.
하지만 NULL을 다루는 방식은 데이터베이스마다 미묘한 차이가 있는데,
이번 글에서 Oracle, MySQL, MSSQL, PostgreSQL에서 NULL을 처리하는 방법을 알아보자!
Oracle
Oracle에서는 NULL을 다룰 때 NVL과 COALESCE 함수가 자주 사용된다.
NVL 함수 : NVL은 NULL 값을 대체할 값을 지정
COALESCE 함수 : COALESCE는 여러 값을 순서대로 확인하여 NULL이 아닌 첫 번째 값을 반환
SELECT NVL(NULL, 'hanker') AS Result FROM DUAL;
-- 결과: 'hanker'
SELECT COALESCE(NULL, NULL, 'hanker') AS Result FROM DUAL;
-- 결과: 'hanker'
MySQL
MySQL은 IFNULL과 COALESCE를 사용해 NULL을 처리한다.
IFNULL 함수 : IFNULL은 NULL 값을 대체할 값을 지정
COALESCE 함수 : COALESCE는 Oracle과 동일한 방식으로 작동
SELECT IFNULL(NULL, 'hanker') AS Result;
-- 결과: 'hanker'
SELECT COALESCE(NULL, 'hanker') AS Result;
-- 결과: 'hanker'
MSSQL
MSSQL은 ISNULL과 COALESCE를 사용한다.
ISNULL 함수 : ISNULL은 NULL 값을 대체
COALESCE 함수 : MSSQL에서도 COALESCE는 동일하게 동작
SELECT ISNULL(NULL, 'hanker') AS Result;
-- 결과: 'hanker'
SELECT COALESCE(NULL, 'hanker') AS Result;
-- 결과: 'hanker'
PostgreSQL
PostgreSQL에서는 COALESCE와 NULLIF를 사용한다.
COALESCE 함수 : PostgreSQL의 COALESCE는 다른 데이터베이스와 동일
NULLIF 함수 : NULLIF는 두 값이 같으면 NULL을 반환하고, 그렇지 않으면 첫 번째 값을 반환
SELECT COALESCE(NULL, 'hanker') AS Result;
-- 결과: 'hanker'
SELECT NULLIF(1, 1) AS Result1, NULLIF(1, 2) AS Result2;
-- 결과1: NULL, 결과2: 1
NULL 비교 시 주의할 점
SQL에서 NULL은 "값이 없다"는 의미이기 때문에 == NULL 같은 비교는 항상 FALSE를 반환한다.
대신 IS NULL과 IS NOT NULL을 사용해야 한다.
NULL 처리 비교표
데이터베이스 | 대체 함수 | NULL 비교 | 함수 |
Oracle MySQL MSSQL PostgreSQL |
NVL, COALESCE | IS NULL | - |
IFNULL, COALESCE | IS NULL | - | |
ISNULL, COALESCE | IS NULL | - | |
COALESCE, NULLIF | IS NULL | NULLIF 지원 |
반응형
'DATABASE > SQL' 카테고리의 다른 글
SQL - 서브쿼리 사용법 (서브쿼리 활용 방법) (0) | 2025.01.03 |
---|---|
SQL - 테이블 결합, 데이터 통합의 핵심 JOIN 알아보기 (0) | 2025.01.02 |
SQL - 각 데이터베이스 별 데이터 타입 변환 방법 (MySQL / MSSQL / ORACLE / PostgreSQL), CAST와 CONVERT 사용법 (0) | 2024.12.31 |
SQL - 데이터 중복 제거하기! (MySQL / MSSQL / Oracle / PostgreSQL) (0) | 2024.12.10 |
SQL - 데이터를 필터링하고 정렬하는 방법 (MySQL / MSSQL / Oracle / PostgreSQL) (WHERE, ORDER BY, LIMIT/FETCH/TOP) (1) | 2024.12.09 |