문제
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