[SQL문제다시풀기] 대장균들의 자식의 수 구하기 - null

silver's avatar
Feb 11, 2025
[SQL문제다시풀기] 대장균들의 자식의 수 구하기 - null
Contents
문제MYSQL

문제

MYSQL

내가 작성한 정답

select p.id , ifnull(d.pi,0) CHILD_COUNT from (select parent_id,count(parent_id) pi from ecoli_data group by parent_id) d right join ecoli_data p on d.parent_id = p.id order by 1 asc

MYSQL과 ORACLE에서 NULL다루기

MySQL
Oracle
IFNULL
IFNULL(column_name, 'default_value')
-
첫 번째 인자가 NULL이면 두 번째 인자를 반환.
NVL
-
NVL(column_name, 'default_value')
첫 번째 인자가 NULL이면 두 번째 인자를 반환.
COALESCE
COALESCE(column1, column2, 'default_value')
COALESCE(column1, column2, 'default_value')
인자 중 첫 번째로 NULL이 아닌 값을 반환.
NULLIF
NULLIF(column1, column2)
NULLIF(column1, column2)
두 인자가 같으면 NULL, 다르면 첫 번째 인자를 반환.
ISNULL
ISNULL(column_name)
-
인자가 NULL이면 1, 아니면 0을 반환.
NVL2
-
NVL2(column_name, 'Not Null', 'Is Null')
첫 번째 인자가 NULL이 아니면 두 번째 인자, NULL이면 세 번째 인자를 반환.
CASE WHEN
CASE WHEN column_name IS NULL THEN 'default_value' ELSE column_name END
CASE WHEN column_name IS NULL THEN 'default_value' ELSE column_name END
NULL 여부에 따라 다른 값을 반환할 수 있음.
IS NULL
column_name IS NULL
column_name IS NULL
 NULL이면 TRUE를 NULL이 아니면 FALSE를 리턴
IS NOT NULL
column_name IS NOT NULL
column_name IS NOT NULL
NULL이면 FALSE를 NULL이 아니면 TRUE를 리턴
Share article

silver