포스트

Null 처리하기

https://school.programmers.co.kr/learn/courses/30/lessons/59410

문제

  • 문제 풀이
1
2
3
4
5
6
-- CASE 문을 사용하여 이름이 NULL인 경우 "No name"으로 대체
SELECT ANIMAL_TYPE,
       CASE WHEN NAME IS NULL THEN 'No name' ELSE NAME END AS NAME,
       SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
1
2
3
4
5
6
-- COALESCE 함수를 사용하여 이름이 NULL인 경우 "No name"으로 대체
SELECT ANIMAL_TYPE,
       COALESCE(NAME, 'No name') AS NAME,
       SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;


  • COALESCE 함수는 인자로 받은 값들을 왼쪽에서 오른쪽 순서로 평가하며, NULL이 아닌 첫 번째 값을 반환한다.

    1
    2
    
      SELECT COALESCE(column_name, 'default_value') AS alias_name
      FROM your_table;
    
    • column_name이 NULL이 아니라면 해당 값을, NULL이면 ‘default_value’를 반환한다.


  • NVL 함수는 Oracle에서 사용되는 함수로, COALESCE와 유사한 역할을 한다. NVL 역시 여러 개의 인자 중에서 NULL이 아닌 첫 번째 값을 반환한다.

    1
    2
    
      SELECT NVL(column_name, 'default_value') AS alias_name
      FROM your_table;
    
    • column_name이 NULL이 아니라면 해당 값을, NULL이면 ‘default_value’를 반환한다.


  • COALESCE 함수는 SQL 표준에 정의된 표현식이며, 대표적으로 PostgreSQL, MySQL, SQLite, SQL Server 등 다양한 데이터베이스 시스템에서 사용할 수 있다.
  • Oracle 데이터베이스 시스템에서는 NVL 함수가 주로 사용되며, 이는 Oracle에서만 지원하는 함수이다. 따라서 Oracle에서는 NVL을 사용하는 것이 일반적이다.


  • 실행 결과

실행 결과

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.