Develop/Daily Algorithm Practice 공략집

[오늘의 알고리즘 1문제] - <Null 처리하기>

쿼카홀릭 2025. 2. 6. 09:58

2025.02.06(Thu.)

 

[오늘의 알고리즘 1문제] - 프로그래머스 MySQL

<Null 처리하기>

 

입양 게시판에 동물 정보를 게시하려 합니다. 동물의 생물 종, 이름, 성별 및 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 프로그래밍을 모르는 사람들은 NULL이라는 기호를 모르기 때문에, 이름이 없는 동물의 이름은 "No name"으로 표시해 주세요.

마지막 줄의 개는 이름이 없기 때문에, 이 개의 이름은 "No name"으로 표시합니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.

ANIMAL_TYPE NAME SEX_UPON_INTAKE
Cat Jewel Spayed Female
Cat Meo Neutered Male
Dog No name Spayed Female

 

<내가 작성한 코드>

SELECT ANIMAL_TYPE,
	   COAlESCE(NAME, 'No name') AS NAME,
       SEX_UPON_INTAKE
FROM ANIMAL_INS

 

정답입니당.

 

<복습할 내용>

 

1. COALESCE는 보통 컬럼을 병합할 때, 사용한다.

SELECT A,B
       ,COALESCE(A,B)
FROM TEST

 

위와 같이 사용하게 되면, 함수는 두 개의 인자값을 받는다.

A컬럼의 0번째 행이 NULL이라면 해당 값은 같은 줄에 있는 B컬럼의 값으로 대체된다.

반대의 경우도 동일하다. 두 값이 모두 NULL이라면 NULL이 반환되고, 두 값이 모두 NULL이 아니라면 A값이 반환된다.

 

COALESCE는 다른 방식으로도 사용 가능하다!

SELECT COALESCE(A, '---')
FROM TEST

 

위와 같이 작성하면 A칼럼의 NULL 값을 '---'안에 작성한 값으로 대체할 수 있다.

칼럼을 병합하지 않고 하나의 칼럼 안에 있는 NULL값을 다른 값으로 바꾸고 싶을 때 사용한다.

오늘의 문제에 적용한 방식처럼 말이다.