[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 값 처리는 데이터베이스 쿼리에서 중요한 부분이며, 이러한 다양한 방법을 사용하여 효율적으로 처리할 수 있습니다.

참고 자료