반응형
SQL NULL 관련 함수 완벽 정리 🌟
오늘은 SQL에서 자주 사용되면서도 초보자들이 헷갈려 하는 NULL 처리 함수들에 대해 알아보겠습니다.
SQL에서 NULL이란 ‘값이 없다’ 또는 ‘알 수 없는 값’을 의미합니다. 따라서 일반적인 값과는 다르게 처리해야 하는데요, 이때 유용하게 사용할 수 있는 함수들이 있습니다. 대표적인 NULL 처리 함수들을 하나씩 살펴볼까요?
🔍 1. NVL(컬럼명, 대체값)
NVL 함수는 Oracle에서 제공하는 함수로, 특정 컬럼이 NULL일 경우 지정한 다른 값으로 대체해줍니다.
사용법
SELECT NVL(COMM, 0)
FROM EMP;
의미: EMP 테이블의 COMM 컬럼 값이 NULL이라면 0으로 출력합니다.
🔍 2. IFNULL(컬럼명, 대체값)
MySQL/MariaDB에서 NVL 함수와 유사한 역할을 합니다.
사용법
SELECT IFNULL(COMM, 0)
FROM EMP;
의미: COMM 컬럼 값이 NULL이라면 0으로 표시합니다.
🔍 3. ISNULL(컬럼명, 대체값)
SQL Server에서 사용하는 NULL 대체 함수입니다.
사용법
SELECT ISNULL(COMM, 0)
FROM EMP;
의미: COMM 컬럼 값이 NULL일 때 0으로 변경하여 출력합니다.
🔍 4. COALESCE(컬럼1, 컬럼2, …, 컬럼n)
COALESCE 함수는 표준 SQL 함수로 여러 개의 컬럼 또는 표현식을 입력받아, NULL이 아닌 첫 번째 값을 반환합니다.
사용법
SELECT COALESCE(COMM, BONUS, 0)
FROM EMP;
의미: COMM 값이 NULL이라면 BONUS를 확인하고, BONUS도 NULL이라면 마지막 값 0을 출력합니다.
- COALESCE는 여러 개의 컬럼을 사용할 수 있어 NVL이나 IFNULL보다 확장성이 높습니다.
🔍 5. NULLIF(표현식1, 표현식2)
두 표현식을 비교하여 값이 같다면 NULL을 반환하고, 다르면 표현식1의 값을 반환합니다.
사용법
SELECT NULLIF(SAL, 0)
FROM EMP;
의미: SAL이 0일 경우 NULL로 처리하여 출력하고, 0이 아니면 SAL의 원래 값을 출력합니다.
🌟 각 함수별 DB 지원 정리
함수명 | Oracle | MySQL/MariaDB | SQL Server | 표준 SQL |
NVL | ✔️ | ❌ | ❌ | ❌ |
IFNULL | ❌ | ✔️ | ❌ | ❌ |
ISNULL | ❌ | ❌ | ✔️ | ❌ |
COALESCE | ✔️ | ✔️ | ✔️ | ✔️ |
NULLIF | ✔️ | ✔️ | ✔️ | ✔️ |
🎯 언제, 무엇을 쓰면 좋을까?
- Oracle 환경이라면 NVL을, MySQL이라면 IFNULL을 선택하세요.
- SQL Server에서는 ISNULL이 최적입니다.
- 여러 컬럼 중 첫 번째로 나타나는 NULL이 아닌 값을 원할 땐 COALESCE를 쓰세요!
- 특정 값이 나오면 강제로 NULL로 변환하고 싶다면 NULLIF가 딱입니다.
반응형
'자격증 > SQLD' 카테고리의 다른 글
[SQLD/자격증] 행 관련 순서함수(오프셋 함수) 완벽 정리 (0) | 2025.05.25 |
---|---|
[SQLD/자격증] 윈도우 함수의 프레임절(Frame Clause) 완벽 이해하기 (0) | 2025.05.25 |
[SQLD/자격증] 본질식별자와 인조식별자란? (0) | 2025.05.25 |
SQL NOT EXISTS 문법의 핵심 이해! - NULL이 포함된 조건 비교 주의점 (0) | 2025.05.24 |
논리연산자의 우선순위 (1) | 2025.05.24 |