코딩테스트/SQL

[SQL] NULL 값 처리

박소민 2024. 3. 23. 00:16
1. WHERE 절에서 NULL 제외
WHERE TLNO IS NOT NUL

 

IFNULL( 컬럼명, 대체단어)
   -> MYSQL에서 사용 코테에서 안될수도?
  • NAME이란 컬럼에 NULL이 있을 경우 그 값을 'N/A'으로 변경
SELECT ANIMAL_TYPE, IFNULL(NAME, 'N/A') AS NAME
FROM ANIMAL_INS

 

3. NULL을 특정 값으로 대체 (COALESCE)

 

  • COALESCE: 병합한다는 의미
  • 조건에 따라서 두 칼럼을 합치는 기능을 하는데, 이런 기능을 활용해서 NULL 값을 특정 값으로 변환하는 데 사용하기도 함.
    • 둘 중 하나가 NULL: COALESCE(A,B)= NULL이 아닌 값
    • 둘다 NULL : COALESCE(A,B)= NULL
    • 둘다 NOT NULL: COALESCE(A,B)= A
* NULL 값을 다른 문자로 대체

SELECT COALESCE(A, '---') FROM test;
SELECT COALESCE(TLNO, 'N/A') AS TLNO
A B COALESCE(A,B)
1 NULL 1
2 3 2
NULL 4 4
NULL NULL NULL

 

4. CASE 문으로 처리
SELECT
    CASE
        WHEN TLNO IS NULL THEN 'N/A'
        ELSE TLNO
    END AS TLNO,
    MEMBER_ID, MEMBER_NAME, GENDER, DATE_OF_BIRTH
FROM MEMBER_PROFILE