[sql] WHERE 절에서 NULL 값 처리하기
일반적으로 SQL WHERE 절을 사용하여 데이터베이스에서 특정 조건을 가진 레코드를 검색합니다. 그러나 때로는 NULL 값이 있는 경우에 조건을 처리하는 방법을 알아야 합니다.
IS NULL 및 IS NOT NULL 연산자 사용
SELECT * FROM 테이블명 WHERE 컬럼명 IS NULL;
위의 예시에서는 특정 컬럼값이 NULL인 레코드를 찾는 방법을 보여줍니다. NULL이 아닌 값을 찾으려면 IS NOT NULL
을 사용합니다.
COALESCE 함수 사용
COALESCE
함수는 여러 값 중에서 첫 번째로 NULL이 아닌 값을 반환합니다.
SELECT * FROM 테이블명 WHERE COALESCE(컬럼명, '대체값') = '대체값';
위의 예시에서는 컬럼명
이 NULL이 아닌 경우 그 값을 가져오고, NULL일 경우 ‘대체값’을 가져오는 방법을 보여줍니다.
NULL과 다른 값 비교하기
SELECT * FROM 테이블명 WHERE 컬럼명 = 값 OR 컬럼명 IS NULL;
위의 예시에서는 컬럼명
의 값과 특정 값이 일치하거나 NULL인 레코드를 찾는 방법을 보여줍니다.
CASE 문 사용
CASE
문을 사용하여 조건에 따라 다른 결과를 반환할 수 있습니다.
SELECT 컬럼명,
CASE
WHEN 컬럼명 IS NULL THEN 'NULL'
ELSE 'NOT NULL'
END AS 상태
FROM 테이블명;
NULL 값 처리는 데이터베이스 쿼리에서 중요한 부분이며, 이러한 다양한 방법을 사용하여 효율적으로 처리할 수 있습니다.